【发布时间】:2011-05-20 12:18:41
【问题描述】:
我目前正在阅读 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',这很有意义。
这是否意味着书中的示例有其他用途?
【问题讨论】:
-
你知道你提到的这本书是C语言的原作者写的吧?