- ベストアンサー
ループ途中に強制終了
int main() { while(1){ 繰り返し処理} return 0; } この場合、ブレークを記入しない限り止まらないですね。 止まらない中でEnterキーを押せばループから抜け出して強制終了させるようなコマンドはありますか? 初心者なので丁寧に教えていただければ幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
合わせて使え、という事でしょう。 「キーボードから入力があった(=_kbhit()が0以外を返す)ときにその入力を受け取って(=_getch()の結果)値を見る」という処理をすればいい訳ですね。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
なぜ #1 では _getch だけでなく _kbhit についても言及されてるんだと思いますか?
質問者
補足
回答ありがとうございます。 while(!_kbhit()){処理文} としたらどのキーを押せば止まるようですが、 指定キーで止まるように試しに while(_kbhit()!=0xd)としてみたんですが、やはり反応しないんですね。 よく考えればできるんと思いますが、なかなか思いつかないんです。 どう考えればできるんですか?
noname#208124
回答No.1
Windows限定で_kbhitと_getch
質問者
補足
さっそく回答ありがとうございます。 処理文の後に if(_getch()==`y`)break; を記入してやってみましたが、 1回処理文を実行した後、入力するためか止まってしまいます。 繰り返して止まらず、指定されたキーを押せば止まるようなコマンドや考え方はありますか? 贅沢な質問ですいません。
お礼
なるほど!そういうことでしたか! つまり、 while(1){ 処理文 if(_kbhit()){a=_getch(); if(a==0xd)break; } } return 0; としたらループ中にEnterキーを押せば抜け出して 強制終了することができました! ありがとうございます。