小编zer*_*rge的帖子

C:scanf到数组

我是C的新手,现在我正在尝试掌握基础知识,并且在将scanf中的数据直接读入数组时遇到问题.

现在代码看起来像这样:

int main()
{
    int array[11];
    printf("Write down your ID number!\n");
    scanf("%d", array);
    if (array[0]=1)
    {
        printf("\nThis person is a male.");
    }
    else if (array[0]=2)
    {
        printf("\nThis person is a female.");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,该计划的目的是要求提供一个ID,并从第一个数字确定给定的人是男性(1)还是女性(2).然而,似乎我无法使它工作,因为数组未正确填充(这是在scanf之后立即通过printf(数组)检查,这导致随机数).像这样运行程序会产生这样的结果,即无论你读什么数字,这个人都是男性.

看起来很琐碎,我无法弄清楚问题.

c

1
推荐指数
2
解决办法
12万
查看次数

当列表索引是变量时抛出异常

我有包含自定义类元素的列表.我想将一个元素的属性赋给变量.

以下代码有效:

string myVar = list[0].MyType.MyStringProperty;
Run Code Online (Sandbox Code Playgroud)

但是我想为列表的其余部分重复这个过程,所以我打算使用循环.但是,此代码不起作用,因为它会抛出ArgumentOutOfRange异常:

for(int i=0; i<=list.Count; i++)
    {
        myVar = list[i].MyType.MyStringProperty;
    }
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

编辑:在第一次执行循环时抛出异常,在最后一行.在调试期间,列表中的元素似乎没问题.它们都具有必需的字符串类型属性,其值为null(除null之外).有可能,它与行有关,但是我使用这个完全相同的方法在其他地方的代码中添加新行,并且它完全正常(但是这些数据不是从列表中获取的).

    private void MyMethod(List<MyType> list)
    {
        for (int i = 1; i < list.Count; i++)
        {
            DataRow newrow = datatable.NewRow();
            newrow["Column"] = list[i].MyStringProperty;
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# exception list

0
推荐指数
1
解决办法
65
查看次数

标签 统计

c ×1

c# ×1

exception ×1

list ×1