字符计数程序不输出任何东西?

时间:2012-04-28 17:44:17

标签: c linux unix

很抱歉问这么简单的问题,我还在学习C并首先完成基础知识。

我正在创建一个字符计数程序,但是当我执行程序并尝试输入“h”例如然后按回车键出现一个新行并且没有输出到该行?

代码:

#include <stdio.h>

/* Copy input and count characters 2nd version */

main() {
    double cc;
    for(cc = 0; getchar() != EOF; ++cc);
    printf("%.0f\n", cc);
}

3 个答案:

答案 0 :(得分:5)

输入完字符后,必须按Ctrl-D发出输入流的结束信号。否则,您的程序将继续等待更多输入。

P.S。为什么在计数器中使用double变量?整数类型更合适。

答案 1 :(得分:0)

也许(我不确定你到底想要什么)你在;之后有一个额外的for(),这意味着一个空的陈述。所以你的程序将运行空语句(换句话说,什么都不做)直到输入结束(如果输入是终端,你可能需要CTRL+D),然后打印(一次)字符数。

如果您希望程序在输入中的每个字符后打印计数器,请删除;,以便printf处于循环中。

答案 2 :(得分:-2)

在结尾处包含此行,您将获得输出:

return 0;