我试图用从用户那里得到的数字填充我的int数组。
但是当我尝试printf
更大的特定索引时,它显示了错误的数字。
for(B_index=0,checker=0; B_index<SIZE&&!checker; B_index++)
{
checker=scanf("%d",&B[B_index]);
if(checker==EOF)
{
checker=1;
}
else if(checker<1)
{
printf("error");
return 1;
}
}
printf("%d",B[1]);
最佳答案
scanf返回分配的数量,因此,如果您在控制台上输入了有效的整数,则scanf将返回1,这表示它已将整数(由于%d)分配给B [0]。这将导致checker为1,因此将在输入第一个数字后立即中断循环。 B [1]未分配,因此如果清除了数组,将包含垃圾或0。
关于c - 如何正确使用scanf和EOF?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47564241/