• ベストアンサー

waitせずにキー入力があった場合のみ処理をさせたい(C言語)

getch()だと、そこでいったん待機状態になりますが、何もキー入力が無かった場合通常通り処理が続行され、もしキー入力があった場合のみ、何か処理をさせたいって時はどうすればいいでしょうか? ちなみにヘッダーファイルが見つからなくて、kbhit()が使えませんでした。

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

  • ベストアンサー
  • symgt
  • ベストアンサー率56% (68/120)
回答No.3

select()でstdinを監視すれば可能だと思います。 select()のマニュアル(man select)にサンプルがあるので試してみてください。

taurus4
質問者

補足

使えそうです、いろいろいじってみたいと思います。ありがとうございました。

その他の回答 (2)

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

ずい分昔、ioctl()関数で制御した覚えがあるのですが、 最近やっていないので、自信なしです。 man ioctl でそれらしい情報が拾えないか見て下さい。 あとは、system("stty raw"); ってのはダメかな?

taurus4
質問者

補足

すみませんioctl()の使い方もよく分かりませんし、system("stty raw"); っていうのは何ですか? ノンブロッキングでキーボードの入力を処理するのって標準入出力関数に用意されていないんですか?ほかの方でも構いませんので、素人なので簡単な説明でお願いします。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

ヘッダファイル conio.h に int kbhit(void); と言う定義はありませんでしたか?

taurus4
質問者

補足

その前に /usr 以下でfindしたんですがconio.hというファイルがありませんでした。

関連するQ&A