我是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);
}
当我运行程序时,它接受输入,但没有OUTPUT。无论你输入多少次,它都会继续输入。
我试图搜索这一百万次,但我找不到答案。
然而,有人告诉我在while循环中包含Ctrl + D中断。我尝试这样做但结果相同。
请有人有解决方案帮助我。从过去两周开始,我试图找出问题所在。
谢谢!
答案 0 :(得分:5)
您的循环将在遇到EOF
( - 1)时结束。
无论你输入多少次,它都会继续输入。
因为'\n' != EOF
。
刺激EOF
,
stdin
有要刷新的字符。否则,它会将EOF
发送到stdin
。nw
初始化为0.此外,main
的签名应为int main(void)
。