1

很抱歉问了这么简单的问题,我还在学习 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);
}
4

3 回答 3

5

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

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

于 2012-04-28T17:46:20.807 回答
0

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

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

于 2012-04-28T18:07:24.307 回答
-2

在最后包含这一行,您将获得输出:

return 0;
于 2014-04-09T16:56:17.933 回答