2

我在 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 控制台中无效。我在这里想念什么?

4

1 回答 1

0

Eclipse 以无法使用“直接”函数kbhit()getch().

您可以设置选项以在运行和调试配置中打开真实控制台。

于 2019-12-20T18:55:30.237 回答