我一直在閱讀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'不起作用 –