- ベストアンサー
無限ループ内でのキー判別
DSPを用いたシステムを開発している途中なのですが。ループ内でのキー判別ができません。 whlie文で無限ループを行い,特定のキー(Enter等)が押されたらその動作を行うという判別ができません。 get関数等を無限ループの中で用いると,get文のところで止まってしまい,これでは私が求めている処理を行うことができません。 無限ループを行い,キー操作があった時だけその動作をする関数があれば教えてください。 PC:window7,visual stdio
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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
補足
この関数はキーの指定が出来ないので 私が作ろうとしてえいるシステムでは活躍することができません。 Enterをしたら1 Homeをおしたら2 などにしたいのです。