该程序跳过了我的while循环并结束了。超级令人沮丧。我什至在while循环之前将AnsCheck的值设置为false。没运气。该程序不执行While循环中的任何操作。以下是相关代码:
bool AnsCheck;
AnsCheck = false;
while (AnsCheck = false)
{
getline(cin, Ans1);
if (Ans1 != "T" || Ans1 != "F")
{
cout << "Please Enter T for true or F for False" << endl;
cout << "answer not T or not F" << endl; // debugging
}
else
{
AnsCheck = true;
cout << "changed bool to true" << endl;
}
}
最佳答案
您需要为相等性==
使用比较运算符,而不是赋值运算符=
。
while (AnsCheck == false) {
// ...
}
另外,正如您在此答案下方的评论中提到的那样,if语句中的条件永远不会被评估为true。要比较字符串,应使用
strcmp
,当两个c字符串的内容相等时,它将返回0。有关更多信息,请参见this reference。if (strcmp(Ans1, "T") != 0 && strcmp(Ans1, "F") != 0) {
// ...
}