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; }这里面的id怎么生成的
时间: 2024-01-10 11:02:29 浏览: 21
int main(int argc,char *argv[])函数的举例解析
这段代码中的 id 是从文件中读取的。在代码中的第 13 行,通过 fscanf 函数从文件中读取了一个整数,存储到 p 指向的节点的 id 成员中(&p->id)。
具体来说,fscanf 函数的格式化字符串为 "%s %d",表示从文件中读取一个字符串和一个整数,并按顺序存储到对应的变量中。其中,%s 表示读取一个字符串,%d 表示读取一个整数。由于文件中每行包含一个字符串和一个整数,因此每次循环都会读取一行数据,并将读取到的整数存储到链表节点中的 id 成员中。
阅读全文