【发布时间】:2010-07-09 09:42:59
【问题描述】:
我在 Windows 7 x64 上为 C/C++ 运行 Eclipse CDT (Helios)。起初,我遇到了在 Eclipse 控制台中运行时直到程序退出时才出现输出的问题,即使它在 Windows 控制台中运行时也是如此。我发现这与标准输出流上的缓冲有关。我可以通过以下方式禁用缓冲:
setvbuf(stdout, NULL, _IONBF, 0);
但现在我无法弄清楚为什么即使在控制台中按下键时 kbhit() 总是返回 0。我尝试在标准输入上禁用缓冲:
setvbuf(stdin, NULL, _IONBF, 0);
但这没有任何效果。我的程序是一个 shell 应用程序。我正在使用 kbhit() 和 getch() 来读取输入,这在程序在 Windows 控制台中运行时有效,但在 Eclipse 控制台中无效。我在这里错过了什么?
【问题讨论】:
标签: c windows eclipse eclipse-cdt kbhit