我一直在阅读Kernighan和Ritchie的C编程语言,很早就遇到了一个不起作用的程序,尽管我直接从本书中复制了它。这里是一个描述的屏幕截图 - http://i.imgur.com/SBQSE.png这个程序是如何工作的?
它陷入了一个无限循环,因为我输入的任何东西显然都是一个键盘输入,而且它正在检查EOF,这显然不是键盘输入。
#include <stdio.h>
/* copy input to output; 1st version */
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
当然,像这样的C权威书籍不能有错误,我错过了什么吗?
在Windows上,它将是Ctrl + Z,iirc。 –
如果我还没有记错,并且没有更改,在Windows和DOS中,ctrl-Z被放置为流中的实际字符。在Unix中,ctrl-D实际上并不是作为字符发送的,并且实际上并不意味着文件结束,它意味着flush。这就是我写在http://stackoverflow.com/questions/1516122/how-to-capture-controld-signal无论如何... –
谢谢,'CTRL + D'工作了一招! 'ctrl + z'不起作用 –