无法检查类似的字符串输入C ++

时间:2017-10-16 21:04:27

标签: c++

我在检查来自用户的类似字符串输入时遇到问题,我很确定我没有弄错我的概念。我担心我可能错过了什么。

我正在努力确保用户只输入A-F级,因此我尝试进行如下所示的输入检查,但它似乎无法正常工作。

string grade;
bool input=false;

while (!input)
{
    cout << "Please enter grade : ";
    getline(cin, grade);

    if (grade == "Grade A" || grade == "Grade B" || grade == "Grade C" || grade == "Grade D" || grade == "Grade E" || grade == "Grade F")
    {
        input = true;
        cout << "Successful input " << endl;
    }
    else
    {
        cout << "Please enter the correct input" << endl << endl;
        input = false;
    }       

}

例如,如果我键入A级,则假设在退出循环时返回成功输入,但它似乎不起作用。我目前正在使用Visual Studio 2015来编写此应用程序。

1 个答案:

答案 0 :(得分:0)

解决此问题的最佳方法是使用调试器或cout来了解出现问题的地方。我的第一步是找出使用getline()后等级的价值。如果成绩与你输入的成绩不相同,那么显然是错误的。

请记住getline()始终有替代品。相反,你可以使用:

 cin << grade;