字数统计程序不起作用。代码示例来自书籍C编程语言Ritchie&凯尼汉

时间:2015-06-29 07:54:49

标签: c wc

这是单词计数程序的代码示例。但它不起作用。当我们执行它时,在输入单词之后它应该显示结果,但它不会产生任何东西。这段代码中缺少什么东西?

#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);
}

1 个答案:

答案 0 :(得分:4)

你的代码很好。你必须问自己如何打破while循环,因为它不断读取输入,即如何将EOF发送到你的程序。

在* nix系统上,执行 CTRL + D ,在Windows上执行 CTRL + Z 生成EOF。

另外:使用main()的标准签名之一,例如int main(void)