为什么在Eclipse控制台中输入输入时kbhit()总是返回0?

我在Windows 7 x64上运行Eclipse CDT(Helios)for C / C ++。起初我在Eclipse控制台中运行时出现输出问题,直到程序退出,即使它在Windows控制台中运行时也是如此。我发现这与stdout流上的缓冲有关。我能够通过以下方式禁用缓冲:
setvbuf(stdout, NULL, _IONBF, 0);
但现在我无法弄清楚为什么即使在控制台中按下键,kbhit()也总是返回0。我试过在stdin上禁用缓冲:
setvbuf(stdin, NULL, _IONBF, 0);
但这没有效果。我的程序是一个shell应用程序。我正在使用kbhit()和getch()来读取输入,这在程序在Windows控制台中运行时有效,但在Eclipse控制台中没有。我在这里错过了什么?     
已邀请:

要回复问题请先登录注册