【发布时间】:2013-05-09 22:41:33
【问题描述】:
我正在编写一段代码时遇到问题。它涉及链表和某些烦人的指针。下面是一些示例代码:
PersonType *person;
FILE *c;
c = fopen("file.csv", "r");
char in[100];
fgets(in, 80, c); //Edited
root->head->next = 0;
char *getNum = strtok(in, ";");
char *getName = strtok(NULL, ";");
char *getHome = strtok(NULL, ";");
strcpy(root->head->getNum, getNum);
strcpy(root->head->getName, getName);
strcpy(root->head->getHome, getHome);
person = root->head;
if(person != 0){
while(person->next != 0){
person=person->next;
}
}
//DEGUG
printf("Successfully Made a Person NODE");
代码不会从文件中读取,我完全不知道为什么。在 XCODE 调试器/跟踪器中,它用 nil 初始化所有 get 字符。有人可以指出我正确的方向吗?
谢谢。
示例文件
P1;Elyza;45 Random RD
P2;Ian;78 Shark CL
【问题讨论】:
-
检查返回码总是很好
-
确实,文件是否被成功打开是无从得知的。验证 c != NULL,然后验证 fgets != NULL 的结果。
-
你说你有指针和东西的问题,在这种情况下你需要展示你使用的结构是如何声明和分配的,否则不可能给出直接的答案。
标签: c arrays char fgets strtok