0

我有这样一段代码:

while (true) {
    if(_kbhit()) {
        cout << "keypressed";
        exit(1);
        }

用于测试以使 _kbhit() 部分正常工作

该程序使用 GetAsyncKeyState() 获取箭头键输入,并在按下 Shift 键的情况下运行这部分代码。

如果我在按 shift 调用这部分代码之前不按任何箭头键,那么 _kbhit 会按预期计算为 false。

问题是这样的,如果我在按下 shift 调用这部分代码之前按下箭头键,即使在调用这部分代码后没有按下任何键,也会输出“keypressed”。

kbhit 是否以某种方式拾取先前的箭头键击?我需要清除输入缓冲区还是什么?

4

0 回答 0