• 締切済み

C言語 kEYの空読み

C言語でプログラムを組んでいます。 あるひとつの処理を連続で行い、何かKEYボタンをおすとプログラムが終了するというプログラム なのですが? while(kbhit()) getch(); while(1) { ~~~~~~      if(kbhit()) { getch(); return(1); } }while(c==0); という内容ですが、     if(kbhit())のあとの文面は、KEYが押されると(1)が返されエラーになり処理が中断される     ということはわかりますが、 冒頭でのこの部分while(kbhit())                getch(); は、どういった意図の分なのでしょうか?

みんなの回答

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.3

キーバッファのクリアでは?

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

kbhit や getch の「意味」は日本語としておかしかったです. これらの「機能」とすべきでした. ごめんなさい. ということで改めて: kbhit や getch の機能を調べてください.

bonborisan22
質問者

補足

ご回答ありがとうございます、調べました。 kbhitは、標準入力にデータがあるか調べ,デーがあれば 1 , データがなければ 0 を返す。 とあるのですが、標準入力というのは、入力keyを押したかどうかということでしょうか? getch,エコーなしで標準入力から 1 文字読み込み,その文字コード を整数で返す。 とあるのですが、エコーとは何のことでしょうか? while(kbhit()) getch(); while(1) { ~~~~~~      if(kbhit()) { getch(); return(1); } }while(c==0); それと、試しに冒頭のwhile(kbhit())           getch(); この部分を抜いて、コンパイルしたところデータが表示されなくなりました。 私の考えが間違っていると思うのですが、 if(kbhit()) { getch(); return(1); } この部分だけでも、データを表示し、もしKEY入力があれば終了するというふうになると思う のですが、皆目見当つかないです。

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

while, kbhit, getch の意味は分かりますか?

bonborisan22
質問者

補足

はい、whileの意味はわかります。 継続条件式が正の間ループ処理を行うという考え方で間違いないでしょうか? kbhitとgetchの意味と、2箇所に分けてこの文面を入れている理由が分かりません。

関連するQ&A