【发布时间】:2011-04-10 06:14:27
【问题描述】:
我对 K&R 中提到的使用 getchar() 的程序感到困惑。它给出与输入字符串相同的输出:
#include <stdio.h>
main(){
int c;
c = getchar();
while(c != EOF){
putchar(c);
c = getchar();
}
}
为什么要打印整个字符串?我希望它能够读取一个字符并再次询问输入。
而且,我们输入的所有字符串都以 EOF 结尾吗?
【问题讨论】:
-
EOF 不是 char 值而不是 int 吗?
-
我认为它是一个值为-1的int。
-
字符串由 \0 终止。文件由 EOF 终止,即 -1
-
我打开了一个文本文件,但在它的末尾没有看到 EOF。 :) 无论如何,如果他们愿意的话,可以提出一个 EOF 为 -42 的 C 实现......不管 EOF 定义为什么值都无关紧要。您应该始终使用常量。
-
@Fahad:文件在其末尾自然终止,而不是在文件中的特定位置存在特定值。 EOF 的值是实现所需的任何值(通常为 -1;但总是 EOF)