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