我一直在从K&Re2学习C语言。上面的代码是在Pg18(字母计数程序)中提到的,我运行该程序是为了进行确认。我试着输入几个字符,然后按ENTER
键,但不起作用。然后,我听说了CTRL+Z
、CTRL+C
或CTRL+D
,并使用ENTER
作为文件结尾。我在NetBeans控制台中尝试过,但它不起作用。我也尝试过\0
和\n
,遗憾的是它也不能工作。我已经搜索过了,但似乎都用CTRL+Z
、CTRL+C
或CTRL+D
的ENTER
方法解决了这个问题。我不明白这里有什么问题。PS:我使用Windows 7
很抱歉没有直接插入代码。这就是它-
#include <stdio.h>
#include <stdlib.h>
int main() {
long c = 0;
while (getchar() != EOF) {
++c;
}
printf("%ld", c);
return 0;
}
在图像中,我还没有初始化long c
的值。很抱歉。这个程序正在运行,但我用于EOF的方法不起作用。
编辑:我尝试过在NetBeans中编译,然后在cmd而不是NetBeans控制台中运行生成的.exe。CTRL+Z
似乎起作用了!你们知道为什么它在NetBeans控制台上不能工作吗?
发布于 2016-03-17 14:47:13
在按enter键之前,getchar()
会将字符存储在缓冲区中。在按下Enter键后,第一个字符将从缓冲区中取出,如果没有后续变量正在使用循环,它将一直循环到\r\n
.so,您必须按enter key
+ ctrl+z
才能到达EOF。
https://stackoverflow.com/questions/36052936
复制相似问题