我剛剛開始學習C,這可能是一個非常簡單的問題,但你的幫助是非常感激的。我試圖用這個代碼來計算輸入到控制檯的字符數量,但是當我點擊輸入時,它只是給我一個空白的新行,就像printf
還沒有工作。我哪裏錯了?控制檯上沒有輸出
int c, number;
while((c = getchar()) != EOF){
++number;
}
printf("%d\n", number);
謝謝。
我剛剛開始學習C,這可能是一個非常簡單的問題,但你的幫助是非常感激的。我試圖用這個代碼來計算輸入到控制檯的字符數量,但是當我點擊輸入時,它只是給我一個空白的新行,就像printf
還沒有工作。我哪裏錯了?控制檯上沒有輸出
int c, number;
while((c = getchar()) != EOF){
++number;
}
printf("%d\n", number);
謝謝。
當你敲回車時,程序會增加計數器,因爲它會得到換行符,並等待更多輸入。你必須養活程序的EOF與按Ctrl +d(LINUX,UNIX,Mac)或按Ctrl +ž,輸入(Windows)中。
如果你在windows下,按Ctrl
+ Z
然後輸入。如果在linux下,按Ctrl
+ D
。這將導致文件結束。
enter
是不是一個控制檯它是EOF或者按Ctrl-Z(Windows)或按Ctrl-d(UNIX)
輸入EOF後,您將得到錯誤的結果,因爲您尚未初始化number
。你正在增加垃圾值。將其初始化爲零。
int c, number = 0;
這樣換行也將被計算在內。如果你想跳過它們,那麼你需要在增加number
之前測試c
不等於'\n'
。
+1爲初始化數字,我想知道爲什麼我得到一個非常奇怪的字符數:)謝謝 – 2012-01-18 16:01:49
非常好,非常感謝! – 2012-01-18 15:48:42