2012-04-28 50 views
1

對不起,提出這樣一個簡單的問題,我仍然在學習C並首先學習基礎知識。字符計數程序不輸出任何東西?

我正在創建一個字符計數程序,但是當我執行程序並嘗試輸入「h」作爲例子,然後按回車時出現一個新行並且沒有任何內容輸出到該行上?

代碼:

#include <stdio.h> 

/* Copy input and count characters 2nd version */ 

main() { 
    double cc; 
    for(cc = 0; getchar() != EOF; ++cc); 
    printf("%.0f\n", cc); 
} 

回答

5

一旦完成輸入字符,必須按Ctrl-D到信號輸入流的結束。否則你的程序將繼續等待更多的輸入。

P.S.爲什麼你使用double變量作爲櫃檯?整數類型會更合適。

+0

是不是兩次浮動的長度?我只是覺得用它會更好。 – TheBlueCat 2012-04-28 18:12:49

+0

@TheBlueCat:由於'cc'只是一個計數器,我認爲它的類型的最佳默認選擇是'int'。 – NPE 2012-04-28 18:35:03

0

也許(我不確定你想要什麼)你有一個額外的;for(),這意味着一個空的陳述。所以你的程序會運行空語句(換句話說,什麼都不做)直到輸入結束(如果輸入是終端,你可能需要一個CTRL+D),然後打印(一次)字符數。

如果您希望您的程序在輸入中的每個字符後打印計數器,請刪除該;,以便printf將在循環中。

+0

根據我讀的這本書的「空聲明」 – TheBlueCat 2012-04-28 18:12:24

+0

那麼,我不知道你到底想要什麼。如果你想使用空循環(並且只在輸入結束時打印),aix的答案是非常好的。 – asaelr 2012-04-28 18:23:22

-2

包含此行的最後,你會得到輸出:

return 0;