我目前正在阅读Ritchie和Kernighan合著的C语言编程书籍。我对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上看到了同样的问题。 大多数人建议使用终止符\ n或空终止符'\0'代替EOF,这非常有道理。
这是说示例书中的代码有另外的用途吗?