【发布时间】:2012-06-22 11:50:55
【问题描述】:
我正在阅读 PrenticeHall。 The C Programming Language - 第二版.Kernighan,Ritchie。
在本书(pg-20)中,给出了一个程序示例,它应该打印用户在控制台窗口中键入的字符数,这是它的代码。
#include <stdio.h>
main()
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n", nc);
}
但是当我运行它并在控制台中输入一些东西时,它根本不会打印任何东西,光标会一直闪烁。 这正是那本书中编写代码的方式。
我也尝试过另一种方式,但这也没有成功,结果与之前的代码相同。
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
关于如何使这件事发挥作用的任何想法?
附: 我正在使用 Windows 操作系统。 (仍然)
【问题讨论】:
-
如何结束程序?什么操作系统..你在Linux/Unix和Windows下分别输入^D还是^Z?
-
感谢@hmjd using getchar() != '\n' 与回车键配合使用,
-
@SauravTomar,它仍然适用于
EOF,只是需要一些了解。 -
@unkulunkulu 它与 EOF 合作,现在我知道为什么它没有更早地工作。 :-)
标签: c