2

Windows 7 x64 で C/C++ 用の Eclipse CDT (Helios) を実行しています。最初は、Eclipse コンソールで実行すると、プログラムが終了するまで出力が表示されないという問題がありました。これは、stdout ストリームでのバッファリングに関係していることを発見しました。次の方法でバッファリングを無効にすることができました。

setvbuf(stdout, NULL, _IONBF, 0);

しかし、コンソールでキーが押されても kbhit() が常に 0 を返す理由がわかりません。標準入力でバッファリングを無効にしようとしました:

setvbuf(stdin, NULL, _IONBF, 0);

しかし、これは効果がありませんでした。私のプログラムはシェルアプリケーションです。kbhit() と getch() を使用して入力を読み取ります。これは、プログラムが Windows コンソールで実行されている場合に機能しますが、Eclipse コンソールでは機能しません。ここで何が欠けていますか?

4

1 に答える 1