【发布时间】:2010-09-05 13:47:14
【问题描述】:
我正在使用 K&R 自学 C 语言,并且被书中的一个示例难住了。我完全按照示例中编写的方式编译代码,但它并没有按照作者所说的那样进行。该程序应该计算字符。给出的代码如下:
#include <stdio.h>
/* count characters in input; 1st version */
main()
{
long nc;
nc=0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
为了编译,我将 main() 替换为 int main()。但我认为这与问题无关。该程序编译并运行良好。但它根本不计算字符,因为它是写的。我错过了什么吗?自从本书编写以来,现代编译器如何处理这样的代码示例是否会发生变化?非常感谢此留言板上的好人提供的任何帮助。
最好, 丹
【问题讨论】:
-
你给程序什么输入,打印什么?
-
你给程序一个标准输入文件吗?例如程序
-
获得第二版 K&R。第一版是博物馆藏品,比已有 20 年历史的 C89 标准早了十年。 (我有一本第一版,我还是很看重它。但它不是现在学习 C 的正确书籍。第二版是可以使用的。)
-
如果你以
ex-1.5.2 < somefile运行,它会统计somefile中的字符。 -
您还必须学习如何使用调试器。