如何在程序中输入数据来计算输入的字符?

MW2*_*000 2 c

我在C中编写了两个程序来计算字符并打印值.

一个使用while循环,另一个使用.编译时没有报告错误,但都没有打印任何内容.

这是使用while的代码:

#include <stdio.h>

/* count characters and input using while */
main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%ld\n", nc);
}
Run Code Online (Sandbox Code Playgroud)

这里的代码用于:

#include <stdio.h>

/* count characters and input using for */
main()
{
    long nc;

    for (nc = 0; getchar() != EOF; ++nc)
        ;
    printf("%ld\n", nc);
}
Run Code Online (Sandbox Code Playgroud)

编译和运行.

当我输入输入并按Enter键时,会打印一个空白换行符.当我在没有输入任何内容的情况下点击输入时,再次打印空白换行符.我认为至少应该打印零.

CB *_*ley 5

您需要终止程序的输入(即触发EOF测试).

在大多数Windows命令窗口的新行开头,您可以使用Ctrl-D或Ctrl-Z在大多数unix终端上执行此操作.

或者,您可以从文件重定向stdin,例如:

myprogram < test.txt
Run Code Online (Sandbox Code Playgroud)

另外,你应该给main一个返回类型; 隐式int已弃用.

int main(void)
Run Code Online (Sandbox Code Playgroud)