У меня немало проблем с чем-то, что должно быть действительно простым. В моей программе есть структура под названием «Run»:
typedef struct{
char name[MAXNAMELENGTH], day[MAXDAYLENGTH];
int distance, intDay;
Date startDate;
Time startTime;
Time runTime;
} Run;
Я анализирую данные из текстового файла в эту структуру, используя fgets () для анализа одной строки в массиве с именем line [], а затем вызываю эту функцию:
void parseTable(char line[NUMBEROFLINES], Run run, Run runs[NUMBEROFLINES], int *j){
sscanf(line,"%s %s %s %d, %s %d:%d %d %d:%d:%d",run.name, run.day, run.startDate.month, &run.startDate.date, run.startDate.year,&run.startTime.hours, &run.startTime.minutes, &run.distance, &run.runTime.hours, &run.runTime.minutes, &run.runTime.seconds);
runs[*j] = run;
*j+=1;
}
Теперь эта функция правильно назначает все данные для запуска структуры и сохраняет эту структуру в массиве run [], но после этого я хочу присвоить структуре новое значение: intDay.
Для этого я вызываю следующую функцию:
void dayToInt(Run run, Run runs[NUMBEROFLINES], int *i, int *a, int *b){
if (strcmp(run.day,"Mon") == 0)
run.intDay = 1;
else if (strcmp(run.day,"Tue") == 0)
run.intDay = 2;
else if (strcmp(run.day,"Wed") == 0)
run.intDay = 3;
else if (strcmp(run.day,"Thu") == 0)
run.intDay = 4;
else if (strcmp(run.day,"Fri") == 0)
run.intDay = 5;
else if (strcmp(run.day,"Sat") == 0)
run.intDay = 6;
else if (strcmp(run.day,"Sun") == 0)
run.intDay = 7;
runs[*i] = run;
*i += 1;
}
Но это не хранит значение intDay в моем массиве run [], и я действительно не понимаю, почему это не так. Я смотрел здесь и на других форумах, чтобы увидеть примеры того, как это сделать, но я должен что-то упускать, но если кто-нибудь скажет мне, что это, то это будет очень признательно:)