C中的字符计数

时间:2014-08-25 19:04:51

标签: c

在下面的程序中,我试图计算一行中的字符

#include <stdio.h>
    /* count characters in input; 1st version */

int main()
{
    double nc;

    for (nc = 0; getchar() != EOF; ++nc)
        ;
    printf("%.0f\n", nc);
}

但行 printf("%.0f\n", nc) 没有被执行 结果如下:

hello     
world

1 个答案:

答案 0 :(得分:2)

EOF只是文件的结尾,而不是行尾。见the documentation。因此,当您按Enter键时,您的程序将保持在for循环中。您可以通过以下两种方式解决此问题之一:

  • 实际上在大多数基于* nix的系统上发送您的程序EOFCtrl-D)或
  • 检查换行而不是EOF

试试这个:

  for (nc = 0; getchar() != '\n'; ++nc)

请注意,您的代码将在您发送的第一个换行符后退出。