我目前正在读里奇出版社(Ritchie&;克尼根.我对getchar()
函数中EOF的用法感到非常困惑.
首先,我想知道为什么EOF的值是-1,为什么getchar()!=EOF
的值是0.请原谅我的问题,我真的不明白.我真的试过了,但是我做不到.
然后我试着在书上运行这个例子,可以使用下面的代码计算字符数,但似乎即使我按enter键,我也永远不会跳出循环,所以我想知道什么时候才能到达EOF?
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
然后,我在Problem with EOF in C岁时读到了同样的问题.大多数人建议不要使用EOF,而使用结束符\n或空结束符‘\0’,这很有意义.
这是否意味着书中的例子还有另一个用途?