• ベストアンサー

ループ途中に強制終了

int main() { while(1){ 繰り返し処理} return 0; } この場合、ブレークを記入しない限り止まらないですね。 止まらない中でEnterキーを押せばループから抜け出して強制終了させるようなコマンドはありますか? 初心者なので丁寧に教えていただければ幸いです。

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

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

合わせて使え、という事でしょう。 「キーボードから入力があった(=_kbhit()が0以外を返す)ときにその入力を受け取って(=_getch()の結果)値を見る」という処理をすればいい訳ですね。

okamotonao
質問者

お礼

なるほど!そういうことでしたか! つまり、 while(1){ 処理文 if(_kbhit()){a=_getch(); if(a==0xd)break; } } return 0; としたらループ中にEnterキーを押せば抜け出して 強制終了することができました! ありがとうございます。

その他の回答 (2)

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

なぜ #1 では _getch だけでなく _kbhit についても言及されてるんだと思いますか?

okamotonao
質問者

補足

回答ありがとうございます。 while(!_kbhit()){処理文} としたらどのキーを押せば止まるようですが、 指定キーで止まるように試しに while(_kbhit()!=0xd)としてみたんですが、やはり反応しないんですね。 よく考えればできるんと思いますが、なかなか思いつかないんです。 どう考えればできるんですか?

noname#208124
noname#208124
回答No.1

Windows限定で_kbhitと_getch

参考URL:
http://msdn.microsoft.com/ja-jp/library/58w7c94c.aspx,http://msdn.microsoft.com/ja-jp/library/078sfkak.aspx
okamotonao
質問者

補足

さっそく回答ありがとうございます。 処理文の後に if(_getch()==`y`)break; を記入してやってみましたが、 1回処理文を実行した後、入力するためか止まってしまいます。 繰り返して止まらず、指定されたキーを押せば止まるようなコマンドや考え方はありますか? 贅沢な質問ですいません。

関連するQ&A