如何通过用户输入在c ++中使用对象初始化数组?

时间:2016-07-28 13:31:45

标签: c++ xcode computer-science

我有下面的代码,信用和加载成功保存到对象,但代码和标题只接受字符串的第一个字母。我一开始尝试course[noOfCourses_].setCode(Code),但它给了我一个错误:

cannot initialize a parameter type char with lvalue char[7]

另一个问题是输入会跳过标题的输入提示并直接进入信用提示。

void addCourse() {
    Course*course=new Course[MAX_NO_RECS];
    char Code[MAX_COURSECODE_LEN];
    char title[20];
    int credit;
    int load;

    cout << "Course Code: ";
    cin.clear();
    cin >> Code;
    cin.clear();
    course[noOfCourses_].setCode(Code[0]);
    cin.clear();
    cout << "Course Title: ";
    cin.getline(title, 20);
    cin.clear();
    course[noOfCourses_].setTitle(title[0]);
    cin.clear();
    cout << "Credits: ";
    cin >> credit;
    course[noOfCourses_].setCredits(credit);

    cout << "Study Load: ";
    cin >> load;
    course[noOfCourses_].setLoad(load);
    noOfCourses_++;

    courseList_[noOfCourses_]=course;
}

1 个答案:

答案 0 :(得分:0)

你的第一条路是对的。你应该使用0(顺便说一句:如果变量course[noOfCourses_].setCode(Code)不以大写字母开头会更好。)

问题出在您的Code功能中。似乎参数是Cource::setCode。要修复它,您应该将其更改为char

char*