使用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がわかりますothertextdataeq.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
私は何を間違っていますか?