将basic_string转换为bool错误

C++ Error converting basic_string to bool

本文关键字:bool 错误 转换 string basic      更新时间:2023-10-16

你好,这可能是一个简单的问题,我很抱歉为这样一个简单的问题消耗你的时间,但我正在努力学习c++。下面是我在学习过程中正在练习的一个小程序。我在代码中遇到了一个障碍,因为当我执行它时,我得到以下错误:"在函数'int main()':

20:19: error: no match for 'operator!(操作数类型为"const string{又称const std::basic_string}")20:19:注:候选人是:20:19: note: operator!(bool)20:19:注意:参数1从'const string{也称为const std::basic_string}'到'bool'的转换未知

下面你会发现我所有的代码谢谢你的帮助!# include# include

    using namespace std;
int main()
{
const string go = "tomato";
string Answer;
cout << "What is your friends favorite food?" << endl;
cout << "ENTER HERE:" << " " << flush;
cin >> Answer;

if(Answer == go)
{
    cout << "Congratulations you know your friend!!!" << endl;
}
while(Answer =! go)
{
    cout << "What is your friends favorite food?" << endl;
    cout << "ENTER HERE:" << " " << flush;
    cin >> Answer;
    cout << "You do not know your friend please try again!!!" << endl;

}



return 0;

}

Answer =! go表示Answer = (!go)go的否定没有定义,因为go不是bool。

你可能想要比较的是'not equal',也就是!=两个字符的顺序有意义。

不等式比较运算符是!=,而不是=!

把你的代码改成这样(特别是把=!改成!=

    using namespace std;
int main()
{
const string go = "tomato";
string Answer;
cout << "What is your friends favorite food?" << endl;
cout << "ENTER HERE:" << " " << flush;
cin >> Answer;

if(Answer == go)
{
    cout << "Congratulations you know your friend!!!" << endl;
}
while(Answer != go)
{
    cout << "What is your friends favorite food?" << endl;
    cout << "ENTER HERE:" << " " << flush;
    cin >> Answer;
    cout << "You do not know your friend please try again!!!" << endl;

}



return 0;