Это то, с чем я работаю, мой код должен читать пользовательский ввод, который гарантирует, что пользователь вводит значение 1, 2 или 0. Любое другое значение, и он выдает сообщение об ошибке, которое предлагает пользователю повторить попытку. Теперь он делает все это, но у меня возникают проблемы с его оптимизацией:
Когда я ввожу любое из правильных чисел, оно не регистрирует его в первый раз, я должен ввести значение снова, чтобы программа работала.
int LogicCalculator::m_userChoice(int &number)
{
number = num;//assignment
//output
std::cout<<"Selection: ";
//input
std::cin>>number;
//Error Checking
while((number < 0 || number > 3) || !(cin >> number))
{
cin.sync(); //discard unread characters in input buffer
cin.clear(); //clear bad input flag
cout<<"Only 1, 2 or 0 are acceptable entries. Exception No."<<endl;
cout<<"Press Enter to Try Again"<<endl;
if(cin.ignore())
{
system("cls");//clears the screen after the user presses Enter
}
m_Menu();
m_userChoice(number);
}
return number;
};
Если кто-нибудь знает, как решить эту проблему, я буду очень признателен.
Задача ещё не решена.
Других решений пока нет …