В настоящее время я работаю над программой на C++, и я хочу проверить, действительно ли введен вход пользователя. В настоящее время мой код работает, если пользователь вводит правильный ввод или если пользователь вводит небольшой неправильный номер, моя пограмма сообщит пользователю, что вход недействителен. Теперь моя проблема заключается в том, что, когда пользователь вводит несколько символов/букв или большое число с 9 или более цифрами, моя программа переходит в цикл ввода, который дает сообщение об ошибке. Ниже мой код:Проверка действительного ввода
//for (;;)
while (flag== false)
{
cin >> Input;
if (Input <= choice.size()-1)
{
flag = true;
// break;
}
else
{
cerr << "Input <" << Input << "> is Invalid, Please Choose a Valid Option\n";
userInput = 0;
}
}
Как вы можете видеть, что я также пытался делать в infinate для цикла, но это дает мне одни и те же результаты. В моем коде я печатаю вектор на экране. В основном пользователь выбирает значение вектора для его использования.
Я открыт для любых предложений. Благодаря
возможно дубликат [? Как я могу подтвердить ввод данных пользователем, как двойной в C++] (http://stackoverflow.com/questions/3273993/how-do-i-validate-user -input-as-a-double-in-c) – casablanca