2012-01-18 113 views
2

我剛剛開始學習C,這可能是一個非常簡單的問題,但你的幫助是非常感激的。我試圖用這個代碼來計算輸入到控制檯的字符數量,但是當我點擊輸入時,它只是給我一個空白的新行,就像printf還沒有工作。我哪裏錯了?控制檯上沒有輸出

int c, number; 
while((c = getchar()) != EOF){ 
++number; 
} 
printf("%d\n", number); 

謝謝。

回答

6

當你敲回車時,程序會增加計數器,因爲它會得到換行符,並等待更多輸入。你必須養活程序的EOF與按Ctrl +d(LINUX,UNIX,Mac)或按Ctrl +ž輸入(Windows)中。

+0

非常好,非常感謝! – 2012-01-18 15:48:42

0

如果你在windows下,按Ctrl + Z然後輸入。如果在linux下,按Ctrl + D。這將導致文件結束。

0

enter是不是一個控制檯它是EOF或者按Ctrl-Z(Windows)或按Ctrl-d(UNIX)

1
  1. 輸入不作爲EOF已經通過其他的答案指出。
  2. 輸入EOF後,您將得到錯誤的結果,因爲您尚未初始化number。你正在增加垃圾值。將其初始化爲零。

    int c, number = 0;

  3. 這樣換行也將被計算在內。如果你想跳過它們,那麼你需要在增加number之前測試c不等於'\n'

+0

+1爲初始化數字,我想知道爲什麼我得到一個非常奇怪的字符數:)謝謝 – 2012-01-18 16:01:49