如何通过用户输入在c++中初始化带有对象的数组

How to initialize array with object in c++ by user input?

本文关键字:对象 数组 初始化 用户 何通过 输入 c++      更新时间:2023-10-16

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

CCD_ 2。

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

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;
}

您的第一种方法是正确的。您应该使用course[noOfCourses_].setCode(Code)(顺便说一句:如果变量Code不以大写字母开头会更好)。

问题出在Cource::setCode函数中。似乎该参数是一个char。要修复它,您应该将其更改为char*

void Cource::setCode(char* code) {
...
}