我有下面的代码,信用和加载成功保存到对象,但代码和标题只接受字符串的第一个字母。我一开始尝试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;
}
答案 0 :(得分:0)
你的第一条路是对的。你应该使用0
(顺便说一句:如果变量course[noOfCourses_].setCode(Code)
不以大写字母开头会更好。)
问题出在您的Code
功能中。似乎参数是Cource::setCode
。要修复它,您应该将其更改为char
char*