2017-06-03 48 views
0

我運行過程中出現的字符計數程序時,有一個問題:如何退出字符計數程序(我用開發的C++)

#include<stdio.h> 
main() 
{ 
    double nc ;  
    for(nc = 0; getchar() != EOF; ++nc) 
     ; 
    printf("%.0f\n", nc) ; 
} 

我寫的完全一樣的代碼在我的書(中c。通過布賴恩W. Kernighan的&丹尼斯·裏奇M.編程語言 第二版),並利用開發的C++編輯和編譯

當運行這個程序,我發現,當我鍵入字符的字符串,然後按ENTER鍵,它只是轉移到下一行,我該怎麼做,以告訴機器,我的輸入終止和前它的程序和接收NC?

+2

在Windows中,退出通過鍵入Ctrl-Z鍵,指示EOF方案;在類UNIX系統上,您通常使用control-d,但該字符是可配置的。 –

回答

0

您循環使用鍵盤輸入的字符串。只要讀取EOF(文件結束)字符,您就會結束循環。在Unix,Linux,BSD等上,您可以通過按下CONTROL-D來指示文件的結尾。在Windows上它是CONTROL-Z。在Mac上,它應該是CONTROL-D,因爲它接近BSD Unix。 (但我不確定)。

如果您需要按「ENTER」結束for循環,則EOL(行尾)的測試可能會有所幫助。

編輯

for(nc = 0; getchar() != '\n'; ++nc); 
+0

@Luis科羅拉多感謝您的提示。 –

+0

@PeterPaulKiefer你的正確,Mac已經接近免費的BSD了。 – LethalProgrammer