c语言链表数据存入文件和读取文件

c语言链表数据存入文件和读取文件c语言,链表数据存入文件和读取文件

大家好,又见面了,我是你们的朋友全栈君。

近快一年没有接触c语言了,今天学妹问我了链表数据存如文件和读取文件到链表怎么实现,现在搞开发很少用文件,都是用数据库,在这儿我还是写一下简单的文件读取链表的操作。在c语言中,创建单链表需要使用到malloc函数动态申请内存;文件的读写需要首先使用fopen函数打开文件,然后使用fscanf,fgetc, fgets,fprintf,fputc,fputs等函数读写函数,最后读写完毕要使用fclose函数关闭函数。


下面的源程序展示了关于单链表如何从文件中读取数据和往文件里存入数据。

typedef struct node {
    int data;
    struct node *next;       
}node;
  
  
//从文件中读取数据存入链表 
node *createlink()
{
    node *head =(node*)malloc(sizeof(node));
    int t;
    node *p;
    node *q;
    p=q=head;
    FILE * r= fopen("input.txt","r");
    if(r==NULL)
    {
        printf("打开文件失败!");
        return NULL; 
    }
     
    while(fscanf(r,"%d",&t)!=EOF)
    {  
       q= (node*)malloc(sizeof(node));
       q->data=t;
       p->next=q;
       p=q;
    }
    p->next=NULL;
    return head;
}
  
 
//输出链表到屏幕和文件output.txt 
void outlink(node *head)
{
   node *p=head->next;
   FILE *w =fopen("output.txt","w");
   if(w==NULL)
   {
       printf("打开文件失败!");
       return; 
   }
   while(p)
   {
       //输出链表节点数据到屏幕 
       printf("%d ",p->data);
       //输出链表节点数据到文件output.txt 
       fprintf(w,"%d ",p->data);
       p=p->next;        
   }     
   printf("\n");
   fprintf(w,"\n");
   fclose(w);
   return;
}
  
int main()
{
    node *head;
    int n,m;
    head=createlink();
    outlink(head);
    system("pause");
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137216.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深圳IT外包公司名单汇总

    深圳IT外包公司名单汇总开科唯识汉克时代拓维云创旭阳软件赛意信息金证股份博颜科技得逸信息新致软件兴融联通通互联信必优易宝长亮科技紫川软件文思海辉东软睿服科技拓保软件联龙汉克润和三丈信息信达体育文化京北方佰钧成亿达新致华云信息纬创软件合生科技海万信息Pactura维沃法本德科中软国际软通动力大展科技天阳博奥特先进数通融安易立德人瑞云盈网络中科软科锐国际湃腾点点新致煜象科技泛鹏天地…

    2022年6月3日
  • 阅读Java菜鸟教程总结(一):基础篇1[通俗易懂]

    阅读Java菜鸟教程总结(一):基础篇1[通俗易懂]一、Java的主函数细节String[]args表示从控制台接收参数。main方法声明为static的原因是为了让主函数不依赖类的对象,在类加载的时候主函数也随着被加载到主存中。三、Java编程的三个特性三、设置环境变量时,三个变量的含义常见的DOS命令操作:四、关键字和保留字Java中默认的带有小数的是双精度的,如果要声明为float…

    2022年6月28日
  • 无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪

    无人驾驶汽车系统入门(一)——卡尔曼滤波与目标追踪前言:随着深度学习近几年来的突破性进展,无人驾驶汽车也在这些年开始不断向商用化推进。很显然,无人驾驶汽车已经不是遥不可及的“未来技术”了,未来10年必将成为一个巨大的市场。本系列博客将围绕当前使用的最先进的无人驾驶汽车相关技术,一步一步地带领大家学习并且掌握无人驾驶系统的每一个模块的理论基础和实现细节。由于无人驾驶汽车系统构成及其复杂,本系列博客仅讨论软件部分的内容,关于汽车,传感器和底层的硬件,不

    2022年6月18日
  • h5文件简介_h5特性

    h5文件简介_h5特性H5文件是层次数据格式第5代的版本(HierarchicalDataFormat,HDF5),它是用于存储科学数据的一种文件格式和库文件。由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.H5将文件结构简化成两个主要的对象类型:1数据集dataset,就是同一类型数据的多维数组2组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据…

    2022年9月10日
  • 背包九讲PDF

    背包九讲PDF本资料仅限个人学习交流使用,不得用于商业用途。背包九讲PDF:https://pan.baidu.com/s/17rTxMwCo9iSTOW77yucdXQ  提取码:xbqa转载于:https://www.cnblogs.com/Taskr212/p/10467227.html…

    2022年6月28日
  • XLSTransformer导出多sheet页

    XLSTransformer导出多sheet页https://blog.csdn.net/z69183787/article/details/51407171?utm_source=app&app_version=4.17.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

    2022年7月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号