我正在阅读“The C Programming Language (2nd ed.)”,在接近开始的时候,它有这样的例子:
while((c = getchar()) != EOF)
if(c == '\n'){
++n1;
我可以在从文件中读取时看到它是如何工作的,并且我理解这种语法...但这只是从控制台读取——当从控制台输入字符时,如何发出文件结束信号?我正在使用 Windows XP ... MinGW 编译器... 不管怎样,这本书是为带有 EOF 按钮之类的早期系统编写的吗?
更新
好吧,我还有一个问题,这与文件结尾在 Windows 下的工作方式有关。
如果我只是 while(getchar()!=EOF);
,那么我可以继续输入字符,直到我通过 ^Z 发出 EOF 信号。但是,我必须写一个换行符,然后按 ^Z,然后是另一个换行符...为什么它必须在自己的行上?
最佳答案
对于 EOF,Windows 使用 Ctrl-Z,而 UNIX 使用 Ctrl-D。参见 http://bytes.com/groups/c/217873-eof-windows , 和优秀的书籍选择。 :)
关于c - 来自 "The C Programming Language"的代码如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886818/