我有一段代码:
while (true) {
if(_kbhit()) {
cout << "keypressed";
exit(1);
}
用于测试目的,以使_kbhit()部分正常工作
程序使用GetAsyncKeyState()获取箭头键输入,如果按下Shift键,则运行此部分代码。
如果我按下任何箭头键,然后按shift键调用这部分代码,那么_kbhit会按预期评估为假。
问题在于,如果我按下箭头键然后按shift键调用这部分代码,即使自调用此部分代码后没有按下任何键,也会输出“keypressed”。
kbhit是否以某种方式拾取了之前的箭头键击?我需要清除输入缓冲区吗?