簡體   English   中英

C中的字計數程序無輸出

[英]No output in word count program in C

我是C語言的新手。 我最近了解了getchar()函數。 我編寫了一個程序來計算輸入中的單詞數。 該程序如下:(我正在使用代碼塊):

#include <stdio.h>

main(){
int c, nw;       /*nw stands for NUMBER OF WORDS*/

while((c=getchar())!=EOF){
    if (c==' '||c=='\t'||c=='\n')
        ++nw; 
}

printf("NUMBER OF WORDS ARE:%d",nw);
}

當我運行程序時,它接受輸入,但是沒有輸出。 無論您按回車多少次,它都會繼續接受輸入。

我試圖搜索一百萬次,但找不到答案。

但是,有人告訴我在while循環中包含Ctrl + D中斷。 我嘗試這樣做,但結果相同。

如果有人有解決方案,請幫助我。 從過去的2周開始,我試圖找出問題所在。

謝謝!

遇到EOF (-1)時,循環將結束。

無論您按回車多少次,它都會繼續接受輸入。

因為'\\n' != EOF

為了刺激EOF

  • 如果您使用的是Windows / DOS,請按CTRL + Z。 這之后必須按Enter
  • 如果您在UNIX / Linux / OSX上,請按CTRL + D。 這將刷新stdin其中有要刷新的字符。 否則,它將EOF發送到stdin

順便說一句,正如其他人所注意到的,您需要將nw初始化為0。而且, main的簽名應該是int main(void)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM