控制台上没有输出

时间:2012-01-18 15:40:01

标签: c console

我刚刚开始学习C,这对你们来说可能是一个非常简单的问题但是你的帮助非常感谢。我正在尝试使用此代码来计算输入控制台的字符数,但是当我点击输入时,它只给我一个空白的新行,就像printf没有用。我哪里错了?

int c, number;
while((c = getchar()) != EOF){
++number;
}
printf("%d\n", number);

感谢。

4 个答案:

答案 0 :(得分:6)

当您按Enter键时,程序会递增计数器,因为它会获取换行符并等待更多输入。您必须使用 Ctrl + D (Linux,Unix,Mac)或 Ctrl + Z ,输入(Windows)。

答案 1 :(得分:1)

  1. 输入不是EOF,正如其他答案所指出的那样。
  2. 输入EOF后,由于您尚未初始化number,因此会得到错误的结果。你正在增加垃圾值。将其初始化为零。

    int c, number = 0;

  3. 这样也会计算换行符。如果您想跳过它们,则需要在递增c之前测试'\n'不等于number

答案 2 :(得分:0)

如果您在Windows下,请按Ctrl + Z,然后输入。如果在linux下,请按Ctrl + D。这将导致文件结束。

答案 3 :(得分:0)

enter在控制台上不是EOF,它是ctrl-Z(windows)或ctrl-D(unix)