我在应该很简单的事情上遇到了一些麻烦。在我的程序我有一个名为“运行”的结构:为什么我的数组不能正确存储结构?
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'? –