Windows でキーを押したままにすると、キーが 1 回押されてから、約 0.3 秒のわずかな遅延があり、その遅延の後で初めてキーを連続して押し始めます。このようなもの: x (0.3 秒の遅延) xxxxxxxx。
ボタンが押されたかどうかを検出するために kbhit() を使用すると、0.3 秒の遅延でボタンが検出されないため、その時間内に目的のコードが実行されません。
どうすればこれを修正できますか? (Windows コントロールで遅延を最小 (0.25 秒) に設定することは、私にとってはオプションではありません。)
kbhit() と getch() のすべての可能な組み合わせを既に試しました。
while(TRUE){
if (kbhit()) {
button = getch();
} else {
button = 'x';
}
switch (button) {
case 'a':
ToDo();
break;
}
}
私の例で a を押すと、最初の 1 回目から 0.3 秒の休憩なしで ToDo() を継続的に実行する必要があります。しかし、そうではありません。