strtok
을 사용할 때 문제가 발생했는데, 문제가 strtok
이나 다른 것인지 알 수 없습니다.C strtok을 char에 덧붙입니다. *
typedef struct team{
char *name;
char *teamPlace;
}Team;
:
sometextdada;othertextdata
yetmoredata;andmoredata
읽기 데이터가 이런 식으로 정의 된 struct
에 저장하는 것입니다 :
는이 같은 데이터를 .txt 파일이
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
이 예상대로 작동하고 있으며 저장중인 것을 볼 수 있습니다.eq.name
에서3210 및 othertextdata
지금은 이런 식으로 정의되어 링크 된 목록에 eq
를 추가하는 기능이 printf
을 대체 할 eq.teamPlace
에서 :
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);
나는 그 문제가 생각 날 리드 그래서 모두가 예상하고있다으로 볼 수있을 때 문자열 내 struct
내가 뭐하는 거지 잘못에 char
?
'fgets (buffer, 100, equipas)! = NULL); 무엇을? – FatalError
@FatalError, 당신의 이름이 "what?"다음에 표시되는 것을 아이러니하게 생각하십시오. 귀하의 의견을 고려하십시오 :) –
addNodeTeamSorted 및 목록을 인쇄하는 함수에 대한 코드를 게시하십시오 – Jay