- ベストアンサー
waitせずにキー入力があった場合のみ処理をさせたい(C言語)
getch()だと、そこでいったん待機状態になりますが、何もキー入力が無かった場合通常通り処理が続行され、もしキー入力があった場合のみ、何か処理をさせたいって時はどうすればいいでしょうか? ちなみにヘッダーファイルが見つからなくて、kbhit()が使えませんでした。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
select()でstdinを監視すれば可能だと思います。 select()のマニュアル(man select)にサンプルがあるので試してみてください。
その他の回答 (2)
- ranx
- ベストアンサー率24% (357/1463)
回答No.2
ずい分昔、ioctl()関数で制御した覚えがあるのですが、 最近やっていないので、自信なしです。 man ioctl でそれらしい情報が拾えないか見て下さい。 あとは、system("stty raw"); ってのはダメかな?
質問者
補足
すみませんioctl()の使い方もよく分かりませんし、system("stty raw"); っていうのは何ですか? ノンブロッキングでキーボードの入力を処理するのって標準入出力関数に用意されていないんですか?ほかの方でも構いませんので、素人なので簡単な説明でお願いします。
- chie65536
- ベストアンサー率41% (2512/6032)
回答No.1
ヘッダファイル conio.h に int kbhit(void); と言う定義はありませんでしたか?
質問者
補足
その前に /usr 以下でfindしたんですがconio.hというファイルがありませんでした。
補足
使えそうです、いろいろいじってみたいと思います。ありがとうございました。