C语言中的字计数程序没有输出
我是C语言的新手。我最近了解了getchar()函数。我写了一个程序来计算输入中的字数。程序如下:(我使用的是代码块):C语言中的字计数程序没有输出,c,C,我是C语言的新手。我最近了解了getchar()函数。我写了一个程序来计算输入中的字数。程序如下:(我使用的是代码块): #包括 main(){ int c,nw;/*nw表示字数*/ 而((c=getchar())!=EOF){ 如果(c=''| | c='\t'| | c='\n') ++西北; } printf(“字数为:%d”,nw); } 当我运行程序时,它接受输入,但没有输出。不管你按多少次回车键,它都会继续输入 我曾无数次地试图寻找这个问题,但都找不到答案 但是,有人告诉我在wh
#包括
main(){
int c,nw;/*nw表示字数*/
而((c=getchar())!=EOF){
如果(c=''| | c='\t'| | c='\n')
++西北;
}
printf(“字数为:%d”,nw);
}
当我运行程序时,它接受输入,但没有输出。不管你按多少次回车键,它都会继续输入
我曾无数次地试图寻找这个问题,但都找不到答案
但是,有人告诉我在while循环中包含Ctrl+D中断。我试着这么做,但结果是一样的
如果有人有解决办法,请帮助我。在过去的两周里,我一直在努力解决这个问题
谢谢 循环将在遇到
EOF
(-1)时结束
不管你按多少次回车键,它都会继续输入
因为“\n”!=EOF
要刺激EOF
- 如果使用windows/DOS,请按CTRL+Z。这后面必须跟回车
- 如果您在UNIX/Linux/OSX上,请按CTRL+D。这将刷新
有要刷新的字符。否则,它会将stdin
发送到EOF
stdin
顺便说一句,正如其他人所注意到的,您需要将
nw
初始化为0。另外,main
的签名应该是int main(void)
将取消条件更改为不同的值,如“q”或您需要初始化的值,否则,您将得到奇怪的输出。ctrl-d代表nix,ctrl-z代表windows。未初始化的nw
将给出错误的结果(在Roy的回答中提到)。0)nw
初始化为0,nw=0代码>1)添加\n
,printf(“字数为:%d\n”,nw);2) 尝试输入,然后按ctrl+d或ctrl+z,然后按enter键。
#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);
}