使用strtok
中に問題が発生しましたが、問題がオンなのか他の問題なのかわかりませstrtok
ん。
次のようなデータを含む .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
私は何を間違っていますか?