私はこの構造体を持っています:
struct match {
int round;
int day, month, year;
int hour, minutes;
char *home_team;
char *visitor_team;
int home_score;
int visitor_score;
int number_of_spectators;
};
そして、ファイルからいくつかの値をロードするこの関数があります。
struct match matches[198];
int get_matches_from_file(struct match *matches)
そして、forループでこれを使用して値を設定します:
int year, month, day, hour, minute;
int m_round;
int home_score, visitor_score;
char home[3], visitor[3];
int spectators;
sscanf(line[i], "%d %d.%d.%d kl.%d.%d %s - %s %d - %d %d", &m_round, &day, &month, &year, &hour, &minute, home, visitor, &home_score, &visitor_score, &spectators);
matches[i].round = m_round;
matches[i].day = day;
matches[i].month = month;
matches[i].year = year;
matches[i].hour = hour;
matches[i].minutes = minute;
matches[i].home_team = home;
matches[i].visitor_team = visitor;
matches[i].home_score = home_score;
matches[i].visitor_score = visitor_score;
matches[i].number_of_spectators = spectators;
しかし、構造体を印刷すると。すべてhome_team
のvisitor_team
文字列は、ロードしたファイルの最後の文字列と同じです。ループの最後ですべて変更されたかのように。
これはline[]
配列の最後の行の例です
33 23.05.2012 kl. 20.00 AGF - FCM 0 - 2 12.139
すべてhome_team
andは andvisitor_team
に設定されAGF
ますFCM