- ベストアンサー
ESCキーを取得できない
getchar() を使って文字入力時に、ESCキーが押されたら、そのプログラムを抜けるようにしたいのですが、 どうもラインバッファ処理のためかできなさそうです。 ただ、できるかできないかを知りたいだけです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
結論から言うと、キーボード制御機構の違いのため処理系依存です。 UNIX系の場合: sttyコマンドでコンソールをrawモードに設定した後、setbuf()でstdinをバッファなしにすればgetchar()で読み取れると思われます。 Windowsの場合: getchar()では出来ません。 getch()が存在する処理系では#1のやり方がベターです。 getch()の存在しない処理系って16ビット系Windows上のコンパイラしか経験が無いんですが、BIOSを使いました。
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
/* 注: 処理系依存です。 * VC++ 7.1 で確認済 */ #include <conio.h> // don't forget ! #include <iostream> int main() { int ch = _getch(); // ← コレ std::cout << std::hex << ch << std::endl; return 0; }