如何解决std::cin 和 std::getline() 正在超越 GetAsyncKeyState() 的输入
我在使用 GetAsyncKeyState()
和 std::getline()
/std::cin
时遇到问题。
我的程序使用 GetAsyncKeyState()
检查按下的键。这工作正常。但是每当我在此之后 cin
或 getline
一个变量时,它仍然具有我之前按下的字符。
没有解决方案,例如 cin.ignore()
或 cin.flush()
:(
bool keypressed[5];
int key_ascii_nums[5]= {65,69,68,67,76};
for (int i = 0; i < 5; i++){
if(GetAsyncKeyState(key_ascii_nums[i]) & 0x8000)
keypressed[i] = true;
else
keypressed[i] = false;
}
string str;
getline(cin,str);
str
总是以我之前给出的字符开头。我怎样才能删除它?
解决方法
我用不同的输入法解决了这个问题。
已将其写入我使用的 bool 数组
switch (toupper(_getch()))
{
case 'L':
// do stuff
break;
default:
break;
}
来自 conio.h
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。