Я пишу программу для школы, которая должна сохранять календарь, когда должны выполняться задания. Мне нужно сохранить название курса (например, cs162), описание домашней работы и дату выполнения в массив структур со структурой для даты в первой структуре.ввод файла в массив struct struct
struct dueDate{
int mm[2];
int dd[2];
int yyyy[4];
};
struct Task{
char course[MAX_CAP];
char description[MAX_CHAR];
dueDate dueDate;
};
Первое, что мне нужно сделать, - это прочитать любые назначения, которые могут уже существовать из уже созданного файла. Формат файла таков:
courseName; описание; мм/дд/гггг (dueDate).
Вот функция нагрузки (проблема в том, после того, как зЬгсру пытается получить Int в DueDate структуры):
void loadDB(Task assignment[], int& size, char location[]){
ifstream inTasks;
char courseName[MAX_CAP];
char fullDescription[MAX_CHAR];
int mm;
int dd;
int yyyy;
Task courseAssignment;
cout << "inside" << endl;
inTasks.open(location);
while(!inTasks){
cerr << "There is a problem with the path of the file " << location << "!";
exit(1);
}
inTasks.get(courseName, MAX_CAP, ';');
while(!inTasks.eof()){
inTasks.ignore(MAX_CAP, ';');
inTasks.get(fullDescription, MAX_CHAR, ';');
inTasks.ignore(MAX_CHAR, ';');
inTasks >> mm;
inTasks.ignore(MAX_CAP, '/');
inTasks >> dd;
inTasks.ignore(MAX_CAP, '/');
inTasks >> yyyy;
inTasks.ignore(MAX_CAP, '\n');
strcpy(courseAssignment.course, courseName);
strcpy(courseAssignment.description, fullDescription);
// PROBLEM
// the warings are under the courseAssignment part
// the error message is "expression must be a modifiable lvalue"
courseAssignment.dueDate.mm = mm;
courseAssignment.dueDate.dd = dd;
courseAssignment.dueDate.yyyy = yyyy;
addToDB(assignment, size, courseAssignment);
inTasks.get(courseName, MAX_CAP, ';');
}
}
Спасибо.
Ваш код не компилируется в моей gcc :(- ошибка: несовместимые типы при назначении типа 'int [2]' из типа 'int' courseAssignment.dueDate.mm = 1; – Inquisitive