我在應該很簡單的事情上遇到了一些麻煩。在我的程序我有一個名爲「運行」的結構:爲什麼我的數組不能正確存儲結構?
typedef struct{
char name[MAXNAMELENGTH], day[MAXDAYLENGTH];
int distance, intDay;
Date startDate;
Time startTime;
Time runTime;
} Run;
我通過使用與fgets解析從文本文件中該結構數據()來解析在單個線到一個數組稱爲線[],然後調用該功能:
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;
}
現在這個功能正常的所有數據分配給結構運行和存儲陣列中運行結構[],但在這之後我想分配結構的新值: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值運行[],我真的不明白爲什麼它沒有。我在這裏看了看,在其他論壇上看到如何做到這一點的例子,但一定有什麼東西我一直缺少的,因此,如果任何人都可以告訴我它是什麼,然後將不勝感激:)
你是如何調用'dayToInt'? –