if(response=='y'){
cout << "great. file saved, please send the file to me and you'll receive the package information and status.";
}
else if(response=='n'){
cout << "exiting. please do it again correctly, thanks!";
}
上面的代码给出了以下编译错误:
错误:不匹配&#39;运营商==&#39; (操作数类型是&#39; std :: string {aka 性病:: basic_string的}&#39;和&#39; char&#39;)|
我不知道问题所在。
有人可以就此提出一些建议吗?谢谢!
答案 0 :(得分:3)
'y'
是字符文字,没有转化运算符将std::string
与字符进行比较。有一个运算符可以与其他std::string
个对象或C风格的字符串进行比较,因此使用"y"
和"n"
代替它。
答案 1 :(得分:1)
'n'
是char
,response
是一个字符串。字符串是字符数组。我不知道你是如何为response
分配价值的,但是如果你从一个istream中拉出来,你就必须先消毒它才能使用它。然后,您必须使用
if(response=="y") //note the double quotes
将整个字符串与长度为1的字符串进行比较
或
if(response[0]=='y')
比较字符串中的一个字符。