[英]I am working on a C++ program for my grandmother's birthday, however I keep getting error code: error C2451
[英]Error code C2451 cannot run basic program
我正在尝试创建一个程序,询问一个问题,并根据响应给出两个答案之一(响应=是或否)。 这是代码:-
#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和字符串。 由于它们包含在三角括号中,因此出于某种原因将不会显示。
谢谢。
if (answer = yes)
a)这是分配( =
)而不是相等性检查( ==
)
b) yes
没有价值-您可能表示类似string answer, yes = "yes";
或者直接使用"yes"
而不是使用变量yes
。
将您的条件表达式更改为
if(answer == yes)
您错过了一个=号。 进行此更改将运行您的程序而不会出现错误。 但是变量yes没有任何价值。 因此,总是第二个if条件将失败。
在您的行中, if (answer = yes)
您将收到错误消息。 我认为您的意思是if (answer == "yes")
。 (您的yes
字符串变量未初始化,所以我猜您希望它成为字符串文字)
您将在此处获得有关C2451错误的更多信息。
此行发生此错误
if (answer = yes)
您使用的是赋值运算符,而不是比较运算符,因此在编译时它将变为
if(answer)
而您遇到该错误,将代码更改为
if (answer == yes)
这样就成为比较操作。 并且也不要忘记初始化字符串变量“ yes” ,希望这能解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.