我在检查来自用户的类似字符串输入时遇到问题,我很确定我没有弄错我的概念。我担心我可能错过了什么。
我正在努力确保用户只输入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来编写此应用程序。
答案 0 :(得分:0)
解决此问题的最佳方法是使用调试器或cout来了解出现问题的地方。我的第一步是找出使用getline()后等级的价值。如果成绩与你输入的成绩不相同,那么显然是错误的。
请记住getline()始终有替代品。相反,你可以使用:
cin << grade;