int createList(Node **head) { FILE *fp; if ((fp = fopen("input.ifo", "r")) == NULL) { printf("无法打开文件.\n"); } Node *p = (Node *)malloc(sizeof(Node)); //创建节点p,保存节点数据 *head = p; int len = 0; while (fscanf(fp, "%s %d", p->name, &p->id) != EOF) { len++; p->next = (Node *)malloc(sizeof(Node)); p = p->next; } //创建链表 free(p); fclose(fp); p->next = *head; // 指向头节点,形成循环 return len; }
时间: 2024-01-10 18:02:29 浏览: 64
ff.rar_C++ FILE* ff_ff文件系统_文件操作_精简文件系统
这是一个 C 语言中创建链表的函数,函数名为 createList,参数为 head 的指针的指针,表示链表头节点的地址。函数的功能是从文件 input.ifo 中读取数据,创建一个链表,并返回链表的长度 len。
函数首先尝试打开文件 input.ifo,如果失败则输出错误信息。然后创建一个名为 p 的指针,用来保存节点数据,同时将 head 指针指向 p。接着进入循环,每次从文件中读取一个字符串和一个整数,保存到 p 指针所指向的节点中,并为下一个节点分配内存空间,将 p 指针指向下一个节点。循环结束后,释放最后一个节点的内存空间,关闭文件,将最后一个节点的 next 指针指向头节点,形成循环链表。最后返回链表的长度 len。
阅读全文