void lianbiao(struct student *head) { FILE *fp; struct student *p1, *q1; q1 = head; if ((fp = fopen("duli16.3.dat", "r")) == NULL) { printf("File open error!\n"); return; } while (1) { p1 = (struct student *)malloc(sizeof(struct student)); if((fscanf(fp, "%s %s %lf", p1->num, p1->name, &p1->money)) ==-1){ break; }; // printf("%s\n",p1->num); p1->next = NULL; q1->next = p1; q1 = p1; } q1->next = NULL; fclose(fp); // printf("111\n"); }
时间: 2024-01-17 19:06:17 浏览: 30
LianBiao.rar_lianbiao_结构体_链表 插入
这段代码定义了一个函数 `lianbiao`,其参数是一个名为 `head` 的指向 `struct student` 类型的指针。
函数首先打开了一个名为 `duli16.3.dat` 的文件,如果文件打开失败,则输出错误信息并退出函数。
接下来,函数进入一个无限循环,每次循环都会动态分配一个 `struct student` 类型的内存,并从文件中读入该结构体的三个成员变量 `num`、`name` 和 `money`,读入成功后会将该结构体插入到链表中,最后将指向链表尾部的指针 `q1` 指向新插入的结构体。
当读取文件结束时,跳出循环并关闭文件。
注释掉的 `printf` 函数可以用来调试代码。
阅读全文