私はそのようなコードのセクションを持っています:
while (true) {
if(_kbhit()) {
cout << "keypressed";
exit(1);
}
_kbhit()セクションを機能させるためのテスト目的
プログラムはGetAsyncKeyState()を使用して矢印キーを入力し、Shiftキーが押された場合、コードのこの部分を実行します。
Shiftキーを押してコードのこの部分を呼び出す前に矢印キーを押さない場合、_kbhitは期待どおりにfalseと評価されます。
問題は、Shiftキーを押してコードのこの部分を呼び出す前に矢印キーを押すと、コードのこの部分を呼び出してからキーが押されていなくても、「keypressed」が出力されることです。
kbhitはどういうわけか前の矢印キーストロークを拾っていますか?入力バッファなどをクリアする必要がありますか?