0

我有一个 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");

我究竟做错了什么?

4

1 回答 1

6
  1. scanf("%d", &n) != 1是错的。应该是scanf("%d", &n) == 1
  2. 您期望循环结束只是因为您按了 Enter 键?如所写,只有当 scanf 由于到达输入文件的末尾而无法读取数字时,您的程序才会停止。如果您使用的是 Unix,则可以通过按 Ctrl-D 从终端发出 EOF 信号。如果你在 Windows 上,它是 Ctrl-Z Enter。(另外,不要依赖于EOF-1;它不是可移植的。)
于 2012-11-25T07:25:35.270 回答