gpt4 book ai didi

c++ - 为什么我的 while 循环会被跳过?

转载 作者:太空宇宙 更新时间:2023-11-04 15:36:45 25 4
gpt4 key购买 nike

程序跳过我的 while 循环并结束。 super 令人沮丧。我什至在 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 语句中的条件永远不会被评估为真。要比较字符串,您应该使用 strcmp,当两个 c 字符串的内容相等时它返回 0。参见 this reference获取更多信息。

if (strcmp(Ans1, "T") != 0 && strcmp(Ans1, "F") != 0) {
// ...
}

关于c++ - 为什么我的 while 循环会被跳过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31395830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com