首页 > 其他分享 >c语言基于链表的文件存储与读取

c语言基于链表的文件存储与读取

时间:2023-06-05 13:34:06浏览次数:47  
标签:fd1 存储 读取 head next 链表 fd NULL LinkList

今天写了一下如何将链表中的数据存储到文件中

head为链表的起始结点

写入文件

void filewirte(LinkList head)
{
LinkList fd;
FILE *p=fopen("student_grad.txt", "w");
if(p==NULL)
{
printf("没有东西");
getchar();
exit(1);
}
fd=head->next;
while(fd)
{
fprintf(p,"%s %s %s %.0lf %.0lf %.0lf\n",fd->number,fd->name,fd->xingbie,fd->yuwen,fd->yingyu,fd->ave);
fd=fd->next;
}
fflush(stdin);
fclose(p);
}

读取文件

void fileread(LinkList head)
{

FILE *p=fopen("student_grad.txt", "r");
if(p==NULL)
{
fclose(p);
fflush(stdin);
filewirte(head);
}
else
{
int end1=0;
LinkList fd1,fd;//fd存数据到fd1
fd1=head;
fd=(LinkList)malloc(sizeof(Node));
fd->next=NULL;
while(1)
{
fd=(LinkList)malloc(sizeof(Node));
fd->next=NULL;
end1=fscanf(p,"%s %s %s %lf %lf %lf",fd->number,fd->name,fd->xingbie,&fd->yuwen,&fd->yingyu,&fd->ave);
if(end1==EOF)
{
break;
}
fd1->next=fd;
fd1=fd1->next;
fd1->next=NULL;
}
}
fflush(stdin);
fclose(p);
}

标签:fd1,存储,读取,head,next,链表,fd,NULL,LinkList
From: https://www.cnblogs.com/a1113775906/p/17457549.html

相关文章

  • .NET使用System.Speech轻松读取文本
    System.Speech是.NET框架的一部分,提供了语音识别和语音合成的功能。通过使用System.Speech命名空间中的类,开发人员可以在.NET应用程序中实现语音识别功能。在本文中,我将演示如何使用System.Speech.NET,这是开发语音应用程序比较牛逼的内库。它适用于.NET4.x和.NETCore以上版本......
  • [学习笔记]数据结构_线性表_顺序表and单链表
    线性表线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面上的概念。线性表的基本操作boolInitList(&L)//初始化表,构造一个空的线性表intLength(L)//求表长。返回线性表L的长度,即L中数据元素的个数intLocateElem(L,e)//按......
  • 链表:剑指 Offer 06. 从尾到头打印链表
    题目描述: 方法:递归法 classSolution{ArrayList<Integer>tmp=newArrayList<>();publicint[]reversePrint(ListNodehead){recur(head);intres[]=newint[tmp.size()];for(inti=0;i<res.length;i++){......
  • 在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB
    dom4j中文乱码[url]http://blog.sina.com.cn/s/blog_3d25e30f0100cyzi.html[/url]org.dom4j.io.XMLWriterxmlWriter=neworg.dom4j.io.XMLWriter(new[color=red]FileOutputStream[/color](fileName));在java环境下读取xml文件的方法主要有4种:DOM、SA......
  • oracle 分页 存储过程
    createorreplacepackagetestpackageastypetest_cursorisrefcursor;endtestpackage;createorreplaceprocedurefenye(tableNameinvarchar2,pageSizeinnumber,pageNowinnumber,myRowCountoutnumber,myPageCountoutnumber,p_cursorouttestpack......
  • PXE(Preboot eXecution Environment)是一种通过网络引导计算机的协议,可以在没有本地存储
    PXE(PrebooteXecutionEnvironment)是一种通过网络引导计算机的协议,可以在没有本地存储设备或可启动介质的情况下从网络上加载操作系统和应用程序。PXE版本因厂商或标准制定者的不同而有所不同。以下是常见的PXE版本及其大致年代:PXE1.0:最早的PXE版本,于1999年左右推出。PXE2......
  • 反转链表
    反转链表最常用的就是双指针法了图解:首先,创建两个指针,begin和end,一个begin为空,一个end指向链表开头1。然后begin=end;end往后移动指向像一个节点,如下图重复以上步骤,直到end为空。代码如下/***Definitionforsingly-linkedlist.*structListNode{*intval;......
  • 【转】向分布式存储系统的迁移 - 使用 ZFS/Gluster
     原文: http://www.taodudu.cc/news/show-4208262.html?action=onClickhttps://my.oschina.net/u/2306127/blog/2865263------------------------------------------ 我这用的Ubuntu18.04系统(已经内置支持ZFS和Gluster文件系统了),原来磁盘存储使用的Ext4格式和LVM......
  • Python 读取CSV
    importcsvdefparseCSVFileStr(data):"""将csv转换为[{},{},{},{},{},{},]形式的列表"""titleFlag=0ldata=[]ltitle=[]data=data.replace('"','')forrowindata.spli......
  • 数据仓库之订单拉链表实战
    什么是拉链表针对订单表、订单商品表,流水表,这些表中的数据是比较多的,如果使用全量的方式,会造成大量的数据冗余,浪费磁盘空间。所以这种表,一般使用增量的方式,每日采集新增的数据。在这注意一点:针对订单表,如果单纯的按照订单产生时间增量采集数据,是有问题的,因为用户可能今天下单,明......