2012-06-05 23 views
0

可能重複:
Why doesn't getchar() recognise return as EOF in windows console?使用字符EOF和getchar函數(c)中計算

我用C新試圖找出如何EOF和的getchar()的工作原理。

#include <stdio.h> 

main() 
{ 

int number = 0; 
while(getchar() != EOF) 
    number++; 

printf("%d", number); 
} 

當我鍵入一些隨機字符時,程序不會做任何事情,我認爲它永遠不會出現while循環。這是爲什麼?我在Windows 7上使用CodeBlocks。

+0

EOF是結束文件的標記。鍵入CTRL + Z或更改條件以使用鍵盤上的字符退出循環。 –

+0

由於EOF無法通過鍵盤輸入。 :) –

回答

1

因爲您未發送EOF字符。 「EOF」代表「文件結束」;控制檯輸入(稱爲「標準輸入」)是文件的特例。但爲了表示這個特殊文件已經結束,你需要發送一個特殊的信號。您可以通過按Ctrl + Z(後跟Enter鍵出於某種原因)在Windows上獲得此效果。