结束文件的方法(EOF)在NetBeans控制台中不起作用

代码图片

我一直在学习K&Re2的C语言。 上面的代码是Pg18( 信件计数程序 )中提到的,我为了确认目的而运行。 我尝试输入几个字符并按ENTER ,但它无法正常工作。 然后我听说CTRL+ZCTRL+CCTRL+DENTER结束文件。 我在NetBeans控制台中尝试过它,但它无法正常工作。 我也尝试了\0\n ,可惜它也没有用。 我已经搜索了这个,但似乎用CTRL+Z解决了CTRL+ZCTRL+CCTRL+D 。 我无法理解这里的问题是什么。 PS:我使用的是Windows 7

很抱歉没有直接插入代码。 就这个-

 #include  #include  int main() { long c = 0; while (getchar() != EOF) { ++c; } printf("%ld", c); return 0; } 

在图像中,我没有初始化long c值。 对不起。 这个程序正在运行,但我用于EOF的方法无法解决。

编辑:我尝试在NetBeans中编译,然后在cmd而不是在NetBeans控制台中运行生成的.exe。 CTRL+Z似乎有效! 你们有没有想过为什么它在NetBeans控制台中不起作用?

getchar()将字符存储在缓冲区中,直到按Enter键。 按下回车键后,如果没有分配后续变量,则从缓冲区中取出第一个字符。当你使用while循环时,它将需要直到\r\n你必须按enter key + ctrl+z才能达到EOF。

仅限Windows

产品版本:NetBeans IDE 8.2(Build 201609300101)

更新:NetBeans IDE已更新为NetBeans 8.2 Patch 2版本

运行>设置项目配置>自定义…

类别=运行

控制台类型=外部终端

外部终端类型=命令窗口

单击Apply然后单击OK

运行项目

要发送EOF,请ENTER,然后按CTRL + D或按两次CTRL + D.