繁体   English   中英

错误代码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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM