这是单词计数程序的代码示例。但它不起作用。当我们执行它时,在输入单词之后它应该显示结果,但它不会产生任何东西。这段代码中缺少什么东西?
#include<stdio.h>
#define IN 1 /* inside a word */
#define OUT 0 /* outside a word */
/* counts lines, words, and characters in input */
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while( (c = getchar()) != EOF ){
++nc;
if( c == '\n' )
++nl;
if( c == ' ' || c == '\n' || c == '\t' )
state = OUT;
else if( state == OUT ){
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}
答案 0 :(得分:4)
你的代码很好。你必须问自己如何打破while循环,因为它不断读取输入,即如何将EOF
发送到你的程序。
在* nix系统上,执行 CTRL + D ,在Windows上执行 CTRL + Z 生成EOF。
另外:使用main()
的标准签名之一,例如int main(void)
。