鱼C论坛

 找回密码
 立即注册
查看: 547|回复: 1

求助

[复制链接]
发表于 2023-12-26 12:27:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. void save(Employee* head)
  2. {
  3.     if(head==NULL)
  4.     {
  5.         printf("链表为空,保存失败\n");
  6.         return;
  7.     }
  8.    
  9.     FILE* fp=fopen("employee_list.txt","wb");
  10.     if(fp==NULL)
  11.     {
  12.         printf("打开文件失败\n");
  13.         return;
  14.     }
  15.    
  16.     Employee* p = head;
  17.     while(p!=NULL)
  18.     {
  19.         fwrite(p, sizeof(Employee), 1, fp);
  20.         p = p->next;
  21.     }
  22.    
  23.     fclose(fp);
  24.     printf("员工信息已保存到文件中\n");
  25. }
复制代码

已经写了一个保存链表的到文件,怎么从文件读取信息呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-26 12:27:15 | 显示全部楼层
你好!要从文件中读取信息,你可以编写一个函数来实现。以下是一个简单的示例代码:
  1. void load(Employee** head)
  2. {
  3.     FILE* fp = fopen("employee_list.txt", "rb");
  4.     if(fp == NULL)
  5.     {
  6.         printf("打开文件失败\n");
  7.         return;
  8.     }
  9.    
  10.     Employee* p = NULL;
  11.     Employee* prev = NULL;
  12.     while(1)
  13.     {
  14.         p = (Employee*)malloc(sizeof(Employee));
  15.         if(fread(p, sizeof(Employee), 1, fp) != 1)
  16.         {
  17.             free(p);
  18.             break;
  19.         }
  20.         p->next = NULL;
  21.         if(*head == NULL)
  22.         {
  23.             *head = p;
  24.         }
  25.         else
  26.         {
  27.             prev->next = p;
  28.         }
  29.         prev = p;
  30.     }
  31.    
  32.     fclose(fp);
  33.     printf("员工信息已从文件中加载\n");
  34. }
复制代码

这个函数会从文件中读取员工信息,并将它们构建成链表。在读取过程中,我们使用`fread`函数来读取一个`Employee`结构体对象的内容,并通过动态内存分配来创建新的节点。最后,我们将新节点添加到链表的末尾。

请注意,在调用此函数之前,请确保链表已经被清空,即`*head`为NULL。另外,为了避免内存泄漏,记得在不需要时释放链表中的节点。

希望对你有帮助!如果有任何问题,请随时告诉我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 17:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表