结束文件的方法(EOF)在NetBeans控制台中不起作用
我一直在学习K&Re2的C语言。 上面的代码是Pg18( 信件计数程序 )中提到的,我为了确认目的而运行。 我尝试输入几个字符并按ENTER
,但它无法正常工作。 然后我听说CTRL+Z
, CTRL+C
或CTRL+D
和ENTER
结束文件。 我在NetBeans控制台中尝试过它,但它无法正常工作。 我也尝试了\0
和\n
,可惜它也没有用。 我已经搜索了这个,但似乎用CTRL+Z
解决了CTRL+Z
, CTRL+C
或CTRL+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.