• ベストアンサー

無限ループ内でのキー判別

DSPを用いたシステムを開発している途中なのですが。ループ内でのキー判別ができません。 whlie文で無限ループを行い,特定のキー(Enter等)が押されたらその動作を行うという判別ができません。 get関数等を無限ループの中で用いると,get文のところで止まってしまい,これでは私が求めている処理を行うことができません。 無限ループを行い,キー操作があった時だけその動作をする関数があれば教えてください。 PC:window7,visual stdio

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

  • ベストアンサー
  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.3

int c; while( 1 ) { if ( c = kbhit() ) { switch( c ) { case 0x0d:          printf( "Enter Key\n" ); break;     …     … の様に、kb_hit() が真の時に、getch() でキーコードを取得すればOKです。 キーコードを取得した後は、if 文か、switch文 (判別したいコードがたくさんある時は switch文がベター)で、それぞれのキーコードに従った処理を記述すれば良いです。 ご参考に。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

あえてウィンドウを出すという選択肢もあるかな. 特に「キーボードを変えたら動作しなくなった」とかいうアレな状況にはまりたくなければ.

  • honor
  • ベストアンサー率35% (25/71)
回答No.2

_kbhit と _getch を組み合わせても出来ないのですか?

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

_kbhit関数が使える。 http://msdn.microsoft.com/ja-jp/library/58w7c94c(v=vs.80).aspx

yuyakun
質問者

補足

この関数はキーの指定が出来ないので 私が作ろうとしてえいるシステムでは活躍することができません。 Enterをしたら1 Homeをおしたら2 などにしたいのです。

関連するQ&A