Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的字符计数_C - Fatal编程技术网

C语言中的字符计数

C语言中的字符计数,c,C,在下面的程序中,我试图计算一行中的字符数 #include <stdio.h> /* count characters in input; 1st version */ int main() { double nc; for (nc = 0; getchar() != EOF; ++nc) ; printf("%.0f\n", nc); } EOF只是文件的结尾,而不是行的结尾。看见因此,当您按下enter键时,您的程序将停留在f

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

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

int main()
{
    double nc;

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

EOF
只是文件的结尾,而不是行的结尾。看见因此,当您按下enter键时,您的程序将停留在
for
循环中。您可以通过以下两种方式之一修复此问题:

  • 实际发送程序
    EOF
    Ctrl-D
    在大多数基于*nix的系统上),或
  • 检查换行符而不是
    EOF
试试这个:

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

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

我猜您实际上没有成功编译此程序,您正在执行的是以前编译过的另一个程序版本,该程序打印“hello world”。按
CTRL+Z
CRTL+D
并输入。@AndyLester操作意味着他/她在终端上输入了它,但没有得到他/她期望的响应(字符计数)——而不是程序突然输出“hello\nworld”。似乎有一个类似的问题(代码几乎完全相同)在这里,这已经得到了回答。。可能重复的
  for (nc = 0; getchar() != '\n'; ++nc)