错误代码C2451无法运行基本程序

时间:2016-03-07 04:49:37

标签: c++ visual-studio debugging compiler-errors

我正在尝试创建一个提出问题的程序,并根据响应给出两个答案中的一个(响应=是或否)。这是代码: -

 #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。这不会出于某种原因显示,因为它们包含在三角括号内。

三江源。

4 个答案:

答案 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; 我希望这能解决你的问题。