Привет, ребята, у меня есть вопрос, на который я долго искал ответ, я видел много одинаковых вопросов, но ни один не решил мою проблему.
Итак, у меня есть функция, которая захватывает игроковимя, используя строку get, которая выглядит следующим образом.
std::cout << "Enter your name"<< std::endl;
std::string input;
std::getline(std::cin, input);
, и после этого у меня есть функция, которая имеет меню, которое сообщает пользователю, что он может нажать ряд клавиш, чтобы перейти к другим частям меню.
while(true)
{
//menu one
if(GetAsyncKeyState(VK_CONTROL))
{
Menu_3();
}
//here is the problem
if(GetAsyncKeyState(VK_SHIFT) && GetAsyncKeyState(0x53)) //0X53 = S
{
Menu_4();
}
}
Моя проблема в том, что если я использую имя с заглавной буквой (созданное с помощью SHIFT) и 's', то также автоматически вызывается Menu_4 () после ввода имени, например, имени «Shawn».если у меня есть только имя, подобное этому «shawn» (без использования shift), то эти «s», похоже, сохраняются в буфере cin, и все, что требуется для перехода, это нажать «shift», чтобы войти в Menu_4 ();
В основном ввод переносится из запроса имени getline, и он сбивает мои вызовы GetAsyncKeyState ().
Спасибо за вашу помощь.