这就是我正在使用的,我的代码应该读取用户输入,以确保用户输入值 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; };
如果有人知道如何解决这个问题,我将非常感激。