我有以下代码:
#include <stdio.h>
int main(int argc, char **argv) {
int arr[2];
arr[0] = 0;
arr[1] = 0;
int end = 0;
int i;
for (i=0; i<2 ; i++){
scanf(" num %d", &arr[i]);
}
scanf(" end %d", &end);
printf("arr0 %d \n", arr[0]);
printf("arr1 %d \n", arr[1]);
printf("end %d \n", end);
}
对于输入:
num 1
num 2
end 3
它工作得很好。
但它也适用于下一个输入:
num 1
end 2
它如何知道结束 for 循环并计算最后一个 scanf 的值?为什么没有失败?
最佳答案
scanf
在第二个示例中确实失败了。第二次循环迭代失败并返回 0 个读取项,而 arr[1]
保持不变。然后循环结束,最后一个 scanf
成功读取第二行输入。
关于c - scanf 如何知道何时结束 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50064218/