我正在尝试创建一个提出问题的程序,并根据响应给出两个答案中的一个(响应=是或否)。这是代码: -
#include <iostream>
#include <string>
using namespace std;
int main()
{
string answer, yes;
cout << "Is Lucy a top lass ? enter yes or no" << endl;
cin >> answer;
if (answer == yes)
{
cout << "Correctomundo" << endl;
}
else
{
cout << " Blasphemy ! " << endl;
}
return 0;
}
我收到错误C2451。任何人都可以解释我必须如何编辑代码,以便它以我想要的方式工作?
我正在使用头文件iostream和string。这不会出于某种原因显示,因为它们包含在三角括号内。
三江源。
答案 0 :(得分:2)
if (answer = yes)
a)它是一项任务(=
)而不是平等检查(==
)
b)yes
没有任何价值 - 你可能意味着像string answer, yes = "yes";
或只是直接使用"yes"
而不是变量yes
。
答案 1 :(得分:0)
将条件表达式更改为
if(answer == yes)
你错过了一个=符号。 执行此更改将运行您的程序而不会出错。但变量yes没有任何价值。所以总是第二个if条件会失败。
答案 2 :(得分:0)
在您的第if (answer = yes)
行中,您收到了错误消息。我认为你打算做的是if (answer == "yes")
。 (您的yes
字符串变量未初始化,因此我猜您希望它是字符串文字)
答案 3 :(得分:0)
您将获得有关 C2451 错误here
的更多信息此行发生此错误
if (answer = yes)
您使用的是赋值运算符而不是比较运算符 因此,当它编译成为
if(answer)
您收到该错误,将代码更改为
if (answer == yes)
这样它就成了比较操作。并且也不要忘记初始化字符串变量&#34; yes&#34; 我希望这能解决你的问题。