• ベストアンサー

ESCキーを取得できない

getchar() を使って文字入力時に、ESCキーが押されたら、そのプログラムを抜けるようにしたいのですが、 どうもラインバッファ処理のためかできなさそうです。 ただ、できるかできないかを知りたいだけです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

結論から言うと、キーボード制御機構の違いのため処理系依存です。 UNIX系の場合: sttyコマンドでコンソールをrawモードに設定した後、setbuf()でstdinをバッファなしにすればgetchar()で読み取れると思われます。 Windowsの場合: getchar()では出来ません。 getch()が存在する処理系では#1のやり方がベターです。 getch()の存在しない処理系って16ビット系Windows上のコンパイラしか経験が無いんですが、BIOSを使いました。

その他の回答 (1)

回答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; }

関連するQ&A