【问题标题】:Character counting program not outputting anything?字符计数程序不输出任何内容?
【发布时间】:2012-04-28 17:44:17
【问题描述】:

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

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

代码:

#include <stdio.h>

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

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

【问题讨论】:

    标签: c linux unix


    【解决方案1】:

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

    附:你为什么使用double 变量作为计数器?整数类型会更合适。

    【讨论】:

    • 不是浮点数的两倍吗?我只是觉得用起来会更好。
    • @TheBlueCat:由于cc 只是一个计数器,我认为其类型的最佳默认选择是int
    【解决方案2】:

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

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

    【讨论】:

    • 根据我正在阅读的书,它是“空语句”
    • 好吧,我不知道你到底想要什么。如果你想使用空循环(并且只在输入的末尾打印),aix 的答案真的很好。
    【解决方案3】:

    在最后加上这一行你会得到输出:

    return 0;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多