0

这就是我正在使用的,我的代码应该读取用户输入,以确保用户输入值 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;
    };
    

如果有人知道如何解决这个问题,我将非常感激。

4

0 回答 0