将.csv文件读入C LinkedList

我有以下struct

 struct NODE { char username[50]; char password[50]; char usertype[50]; struct NODE *next; } *head=NULL; 

我想从.csv文件中读取,比如username, password, usertypeforms的username, password, usertype ,使用strtok将每一行标记为标记,并将每个标记放在右边的字段中。 例如,我的文件看起来像这样:

johnnydepp, pirate123, user
tonystark, iron456, sysop

我继续阅读C LinkedList ,但我无法弄明白。 任何帮助都会非常感激,或者有关如何在C中实现LinkedList任何好的参考。

我的主要问题是将元素放在每个节点中。 我知道如何使用strtok来标记文件中的一行。 这是我到目前为止所做的:

 void createList() { FILE *data; data = fileopen("password.csv", "r"); char parsedLine[50]; while (fgets(parsedLine, 50, data) != NULL) { char *ptr = strtok(parsedLine, ", "); node *temp; temp = (node*)malloc(sizeof(node)); // I am stuck here // } 

谢谢!

编辑

这会有用吗?

 extern void createList() { FILE *data; data = fileopen("password.csv", "r"); char parsedLine[50]; while (fgets(parsedLine, 50, data) != NULL) { struct NODE *node = malloc(sizeof(struct NODE)); char *getUser = strtok(parsedLine, ", "); strcpy(node->username, getUser); char *getPass = strtok(NULL, ", "); strcpy(node->password, getPass); char *getType = strtok(NULL, ", "); strcpy(node->usertype, getType); node->next = head; head = node; } fclose(data); } 

它实际上非常简单……你有一个NODE结构,它包含一个next指针, next指向列表头部(第一个节点)的变量head 。 头指针以NULL开头,表示列表为空。

要添加节点,请创建节点,然后将新创建的节点的next指针设置为指向列表的当前头部,并将头部设置为指向新节点:

 /* Allocate new node */ struct NODE *node = malloc(sizeof(struct NODE)); /* Link to the current head */ node->next = head; /* Make the new node the head of the list */ head = node; 

执行此操作一次后,您将拥有一个包含一个节点的列表。 完成两次后,你有一个双节点列表。 等等。