キーが押されたときに無限ループから抜け出すにはどうすればよいですか? 現在、私は getch を使用していますが、読み取る入力がなくなるとすぐにループがブロックされ始めます。
5 に答える
とにかくgetch()
から使用している場合は、代わりに使用してみてください。と-の両方が、実際には - 標準 C ではないことに注意してください。conio.h
kbhit()
getch()
kbhit()
conio.h
kbhit()
からの関数conio.h
は、いずれかのキーが押された場合にゼロ以外の値を返しますが、のようにブロックしませんgetch()
。さて、これは明らかに標準ではありません。しかし、すでにgetch()
fromを使用しているためconio.h
、コンパイラにはこれがあると思います。
if (kbhit()) {
// keyboard pressed
}
ウィキペディアから、
conio.h は、古い MS-DOS コンパイラでテキスト ユーザー インターフェイスを作成するために使用される C ヘッダー ファイルです。The C Programming Language book には記載されておらず、C 標準ライブラリ、ISO C の一部でもなく、POSIX で必須でもありません。
DOS、Windows 3.x、Phar Lap、DOSX、OS/2、または Win32 1を対象とするほとんどの C コンパイラには、このヘッダーがあり、デフォルトの C ライブラリで関連するライブラリ関数を提供します。UNIX および Linux を対象とするほとんどの C コンパイラには、このヘッダーがなく、ライブラリ関数は提供されません。
この記事を読むことをお勧めします。