c - "The C Programming Language"的非常基本的示例代码没有按预期工作?

标签 c eof kernighan-and-ritchie

我是一名经验丰富的 Java 开发人员,在学习计算机科学研究所需的 C 语言时遇到了很多问题。我用许多人似乎推荐的书“The C Programming Language”来尝试。

但是我遇到了一些最简单的问题,比如 EOF 与 getchar() 的结合。这是代码:

#include<stdio.h>
main()
{
    int i = 0;
    while (getchar() != EOF)
    {
        ++i;
        printf("Count of characters is %d", i);
    }
}

我正在使用 Mac OS X Lion 并使用带有“./a.out”的“cc”命令在终端中运行,就像书中描述的那样运行文件。我得到的是:

  • 总是数太多一个字符
  • while 循环永远不会结束!它只是在到达输入结束后等待另一个输入 ...

我真的不知道可能是什么问题。有人可以帮忙吗?

最佳答案

Always counting one character too much

这可能是换行符(输入/返回)。

the while loop never ends! it just waits for another input after reaching end of input

您可能没有发出输入结束信号。您应该使用 CTRL-D 来执行此操作。

关于c - "The C Programming Language"的非常基本的示例代码没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315289/

相关文章:

c - 我的结构代码中存在双重免费错误

c - `getchar()` 给出与输入字符串相同的输出

C 预处理器错误

c - K&R 任务练习 5.17

C 程序 : Update unsigned char pointer array with function

C 文件处理查询

c - Gcc 填充结构列表

algorithm - 霍夫曼压缩的最后一个字节

c - getchar() 函数和 EOF

c - 类型转换 : signed int to unsigned long in C