我有一个 while 循环,用于扫描一组输入整数。它扫描并打印所有末尾带有“...”的数字,然后跳到下一行。但是,脚本不会:执行经过 while 循环并打印 TEST。
例如,我输入: 3 44 62 1
它打印: 3...
44...
62...
1...
什么时候应该打印: 3...
44...
62...
1...
测试
while(scanf("%d", &n) != -1) {
x[i] = n;
i++;
printf("%d", n);
printf("...\n");
}
printf("TEST");
我做错了什么?
最佳答案
scanf("%d", &n) != 1
是错误的。它应该是scanf("%d", &n) == 1
。- 您希望循环仅仅因为您按下了回车键就结束了?正如所写,只有当 scanf 由于到达输入文件末尾而无法读取数字时,您的程序才会停止。如果您使用的是 Unix,则可以通过按 Ctrl-D 从终端发出 EOF 信号。如果您使用的是 Windows,则为 Ctrl-Z Enter。 (另外,不要依赖于
EOF
为 -1;它不可移植。)
关于c - while 循环中的 scanf() 没有终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549102/