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


相关推荐

  • linux PS1 提示符定义[通俗易懂]

    linux PS1 提示符定义[通俗易懂]PS1:就是用户平时的提示符。PS2:第一行没输完,等待第二行输入的提示符。Linux系统提示符是用系统变量PS1来定义的。一般系统默认的形式是:[username@host工作目录]$.用e

    2022年7月4日
    26
  • *智*客2019IT培训行业变革大会

    *智*客2019IT培训行业变革大会

    2022年2月9日
    42
  • kettle 教程(四):自定义 Java 代码

    kettle 教程(四):自定义 Java 代码kettle拥有很多自带的组件,能帮我们实现很多的功能。但是我们总有一些很复(qi)杂(pa)的需求,用自带的组件实现不了,或者说实现起来很复杂。那么这时我们就要用到万能的组件了(Java代码),通过自己写代码来实现任何想要的功能。自定义Java代码假设有这样一个需…

    2022年5月23日
    240
  • postMessage

    postMessageHTML5postMessage和onmessageAPI详细应用姜俊杰2013年1月10日发布WeiboGoogle+用电子邮件发送本页面0姜俊杰2013年1月

    2022年7月4日
    18
  • matlab运行结果图片如何保存_应对数据丢失最简单的方法

    matlab运行结果图片如何保存_应对数据丢失最简单的方法Matlab中图片保存的四种方法关键字:Saveas:>>saveas(gcf,[‘D:\保存的数据文件\方法1.png’])>>saveas(gcf,[‘D:\保存的数据文件\方法2′,’.png’])>>saveas(gcf,[‘D:\保存的数据文件\’,’方法3′,’.png’])Print:>>print(gcf,’-djpeg’,’C:…

    2022年9月13日
    0
  • Xenu-web开发死链接检测工具应用

    Xenu-web开发死链接检测工具应用Xenu是一款深受业界好评,并被广泛使用的死链接检测工具。时常检测网站并排除死链接,对网站的SEO非常重要,因为大量死链接存在会降低用户和搜索引擎对网站的信任。我们推荐的死链接检测工具Xenu主要具有以下特征:需要下载安装,不到1M大小,用户界面非常简洁,操作简单。检测彻底:能够检测到图片、框架、插件、背景、样式表、脚本和java程序中的链接。报告形式合理多样,死链

    2022年7月23日
    11

发表回复

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

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