У меня проблема при использовании strtok
, и я не знаю, есть ли проблема на strtok
или что-то еще.C add strtok to char *
У меня есть .txt файл с данными, как это:
sometextdada;othertextdata
yetmoredata;andmoredata
Считанные данные должны храниться в struct
определенной следующим образом:
typedef struct team{
char *name;
char *teamPlace;
}Team;
Если я делаю это:
char buffer[100];
Team eq;
/*Read first line*/
fgets(buffer, 100, equipas)!= NULL);
eq.name= strtok(buffer,";\n");
eq.teamPlace= strtok (NULL,";\n");
printf("%s %s\n", eq.name,eq.teamPlace);
Я вижу, что strtok
работает должным образом и сохраняет sometextdada
в eq.name
и othertextdata
в eq.teamPlace
Теперь я хочу заменить, что printf
с функцией, которая добавляет eq
в связанный список, который определен следующим образом:
typedef struct nodeTeam{
int numberOfTeams;
Team team;
struct nodeTeam *next;
struct nodeTeam *prev;
}NodeTeam;
Так что заменить printf
на addNodeTeamsSorted(headEquipas,&tailEquipas,eq);
fgets(buffer, 100, equipas)!= NULL);
eq.name= strtok(buffer,";\n");
eq.teamPlace= strtok (NULL,";\n");
addNodeTeamsSorted(headEquipas,&tailEquipas,eq);
Теперь, если я распечатаю связанный список, я вижу, что мой узел добавлен, но name
и teamPlace
содержит мусорные символы. Но если я это сделать:
fgets(buffer, 100, equipas)!= NULL);
eq.name= "test";
eq.teamPlace= "test2";
addNodeTeamsSorted(headEquipas,&tailEquipas,eq);
Я могу видеть, что все работает, как ожидалось, так что заставляет меня думать, что проблема, когда Строка char
на мой struct
Что я делаю неправильно?
'fgets (buffer, 100, equipas)! = NULL);' что? – FatalError
@FatalError, иронично, что ваше имя появляется после «что?», Учитывая ваш комментарий :) –
Пожалуйста, внесите свой код для addNodeTeamSorted, а также для функции, которая выводит список – Jay