我目前正在阅读 Ritchie & Kernighan 的《C Programming Language》一书。getchar()
而且我对函数中 EOF 的使用感到非常困惑。
首先,我想知道为什么 EOF 的值为-1,为什么值为getchar()!=EOF
0。请原谅我的问题,但我真的不明白。我真的试过了,但我做不到。
然后我尝试运行书中的示例,该示例可以使用下面的代码计算字符数,但似乎即使我按下回车,我也永远不会退出循环,所以我想知道我什么时候会到达 EOF?
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
然后,我在Problem with EOF in C阅读了同样的问题。大多数人建议不要使用 EOF,而是使用终止符 \n 或空终止符 '\0',这很有意义。
这是否意味着书中的例子有另一个目的?