我有了这些目标的程序:SCANF输入和其他问题
读取输入到阵列
读直至EOF
记录的成功(数字)输入的数量
我从初始化开始:
int array[200];
int size = sizeof(array)/sizeof(int);
int num_inputs = 0;
然后我调用一个函数void input(int * array, int size, int *num_inputs)
input(array, size, &num_inputs);
_
void input(int * array, int size, int *num_inputs) {
int i = 0;
printf("Enter numbers:\n");
while(scanf("%d", &array[i]) != EOF) {
i++;
*num_inputs++;
if (i == (size-1))
break;
}
}
num_inputs不起作用。从调试(或者我对调试知之甚少),num_input从0变为一些随机数。我究竟做错了什么?有指针的东西?
假设我输入
5 9 8 8 3 4
- 将scanf解释为6个输入吗? num_input是6吗?如果不是,我该如何实现?我希望能写5 6 3 6
换行4 9 3
和程序,以便能够将其解释为写7件事到阵列和num_input是7
在此先感谢。
1)'* num_inputs ++;' - >'++ * num_inputs;'或'(* num_inputs)++;' – BLUEPIXY
注: 'array [199]'没有被使用。我期望'while(i
chux
'scanf()'可以返回EOF,但这不是检查的重要标准。而是检查格式字符串中有多少格式说明符被成功输入/转换。对于在发布代码中对'scanf()'的调用,检查的返回值是1,而不是EOF。 – user3629249