[英]std::cin and std::getline() are overtaking inputs from 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
總是以我之前給出的字符開頭。 我怎樣才能刪除它?
我通過使用不同的輸入法解決了這個問題。
將其寫入我使用的布爾數組
switch (toupper(_getch()))
{
case 'L':
// do stuff
break;
default:
break;
}
來自 conio.h
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.