私は以下のコードを持っていますが、クレジットと積荷はオブジェクトに正常に保存されますが、コードとタイトルは文字列の最初の文字のみを取ります。私は最初にcourse[noOfCourses_].setCode(Code)
を試しましたが、それは私にエラーを与えます:C++でオブジェクトを持つ配列をユーザー入力で初期化する方法は?
cannot initialize a parameter type char with lvalue char[7]
。
もう1つの問題は、入力がタイトルの入力プロンプトをスキップして、クレジットプロンプトに直接進むことです。
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;
}
に変更する必要がある[7] _明確である、あなたは[ '文字xに' char型のX 'を初期化しようとしています7] 'ie:変数への配列。 'Cursor'クラス定義を確認または投稿してください。 –
Course :: setCode関数の実装方法を教えてください。私は、そのパラメータの型はchar *であるべきだと思います。 –
char Course :: getCode()const { return * courseCode_; }私はこれを持っていて、エラー "EXC_BAD ACCESS"を返します – aok