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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Frp内网穿透

    Frp内网穿透Frp内网穿透​ 内网穿透从本质上来讲也是端口映射,两者都是将内网地址映射到公网可访问的地址,而区别是端口映射直接在路由器中配置即可,而内网穿透配置的端口映射则需要客户端和服务端进行绑定后实现,相当于客户端和服务端之间建立了一条隧道,然后访问服务端的请求会通过隧道转发给内网主机,该情况多用于没有公网IP的情况下使用;​ frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持tcp,udp,http,https等协议类型,可以将内网服务以安全、便捷的方式通过具有公网

    2022年9月13日
    0
  • web前端node.js常用命令

    web前端node.js常用命令1、npm install moduleNames:安装Node模块安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。node的安装分为全局模式

    2022年7月1日
    17
  • 两个pdf怎么打印到一张纸的正反面_pdf打印成小册子页数设置

    两个pdf怎么打印到一张纸的正反面_pdf打印成小册子页数设置没有打印预览费劲。

    2022年9月6日
    3
  • git命令-切换分支

    git命令-切换分支git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下

    2022年6月20日
    36
  • AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除[通俗易懂]

    AngularJS进阶(十一)AngularJS实现表格数据的编辑,更新和删除[通俗易懂]AngularJS实现表格数据的编辑,更新和删除效果实现首先,我们先建立一些数据,当然你可以从你任何地方读出你的数据varapp=angular.module(‘plunker’,[‘ui.bootstrap’]);app.controller(‘MainCtrl’,function($scope){$scope.name=’World’;$sc

    2022年7月25日
    20
  • python3.7安装pip_centos怎么安装

    python3.7安装pip_centos怎么安装CentOS自带Python2.7但现在基本使用Python3所以需要自行下载编译及安装,以下为过程步骤。首先确认目前的Python版本及可执行文件位置,执行命令whichpython返回结果这里可以看到,Python执行文件位置为/usr/bin/python,故我们进入到该目录下cd/usr/bin/python现在开始进行我们Pyth…

    2022年9月1日
    2

发表回复

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

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