C中输入的字符计数

时间:2018-09-22 13:48:07

标签: c

这是我写的代码:

 int main()
 {

    int nc;
    nc=0;

    while(getchar()!=EOF)
    {
        ++nc;    
        printf("%i\n",nc);
    }
    return 0;
}

输出列出诸如1,2,3之类的字符数,而不是总计数。除去封闭while循环的花括号或将'printf'语句置于循环外,根本没有输出。

1 个答案:

答案 0 :(得分:1)

将print语句保留在while循环之外,您将获得最终输入而不是每次打印的总字符数。 PLUS ,您是否按下按钮来传递EOF(在Linux中为ctrl + d),以便循环结束?

除此之外,使用int从getchar()获取值,并将while循环更改为:

 #include<stdio.h>

 int main(void)
 {
     int i;

     while((i=getchar())!=EOF)
     {
         if(i!='\n')
             ++nc;
     }
     printf("%d\n",nc);
     return 0;
 }

否则,由于最后按下'\ n',因此您获得的字符数比实际输入的字符多 1