首页 > 解决方案 > 我正在为我祖母的生日开发一个 C++ 程序,但是我不断收到错误代码:错误 C2451

问题描述

我只上过一门 C++ 课,并打算用不同的东西来填充我奶奶的孩子的名字,我目前所拥有的只是填充物。但是,当我尝试通过将字符串类型更改为整数来调试自己时,就像它告诉我的那样,我只会得到新的错误代码。这是我目前所拥有的,该程序非常简单:

#include <iostream>
#include <string>
#include <cstring>

using namespace std;
string name;

string main() {
    bool done = false;
    while (!done) {

    cout << "Enter one of your children's names, or press 'q' to quit" << endl;
    cin >> name;

    if (name = "q") {
        done = true;
        break;
    }
    else if (name = "Jason") {
        cout << "Jason is your eldest son" << endl;
    }
    else if (name = "Aaron") {
        cout << "Aaron was your second child" << endl;
    }
    else if (name = "Mandy") {
        cout << "Mandy is your only girl" << endl;
    }
    else if (name = "Adam") {
        cout << "Adam came after Mandy" << endl;
    }
    else if (name = "Ben") {
        cout << "Ben is your youngest" << endl;
    }
    else {
        cout << "That name does not exist for your children: try Jason, Aaron, Mandy, Adam, or Ben instead" << endl;
    }
}

}

标签: c++

解决方案


在您的if and else if语句中,您需要更改==而不是=(assignment) 以检查两个操作数的值是否相等。另外,在您的String main()我建议将其更改为:int main()


推荐阅读