【发布时间】:2013-05-02 10:20:10
【问题描述】:
我现在正在使用 K&R C,我正在尝试一个示例,其中程序将字符流作为输入,然后打印流中的字符数。
据我所知,这似乎没有产生任何输出:
main()
{
long nc;
nc = 0;
while (getchar() != EOF){
++nc;
}
printf("%1d\n", nc);
}
然而,这似乎工作正常,虽然与我想要的略有不同:
main()
{
long nc;
nc = 0;
while (getchar() != EOF){
++nc;
printf("%1d\n", nc);
}
}
任何指针将不胜感激。提前致谢!
编辑
我尝试使用 ctrlz 模拟 EOF,但这似乎不起作用。如果这有什么不同,我会在 Windows 7 的 cmd 行之外运行它。
【问题讨论】:
-
你是如何关闭输入流的?
-
添加 getch();在 printf 之后
-
如果您的
printf在while循环内工作但不在循环外,那么它永远不会收到EOF。 -
你的调试器说什么?
-
"%1d\n"--->"%ld\n"
标签: c