Я читаю строку из файла, содержащего имена людей, первая строка содержит имена мужчин, а вторая строка содержит имена женщин. Затем я хочу сохранить эти имена в двух массивах, один для мужчин, другой для женщин, однако, когда я печатаю их, я получаю странные вещи. Я не уверен, что неправильно читаю их или печатаю неправильно
char line[100]; //holds line read
char *item; //item in a line
char *item2;
int participants = 5; //number of people in the event
char* maleNames[participants];
char* femaleNames[participants];
fgets(line, 255, file);
int i;
item = strtok(line, " ");
for(i=0; i<participants; i++)
{
maleNames[i] = item;
item = strtok(NULL, " ");
}
//read female names now
fgets(line, 1024, file);
item2 = strtok(line, " ");
for(i=0; i<participants; i++)
{
femaleNames[i] = item2;
item2 = strtok(NULL, " ");
}
Эти строки читаются
John Jeffrey Adam Mark Peter
Jenny Alice Sally Wendy Amanda
Однако, когда я распечатываю их так:
for(i=0;i<participants;i++)
{
printf("%s %s\n", maleNames[i], femaleNames[i]);
}
Я получаю нечто совершенно другое:
Jenny Jenny
Alice
ally Sally
Wendy Wendy
Amanda
Примечание: если я печатаю имена мужчин сразу после того, как они прочитаны, прежде чем читать женские имена, то они печатаются правильно