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;
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址

    通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址
         由于SILVERLIGHT是基于纯客户端的机制实现的,想在SL中获取客户端计算机信息暂时还没有效的解决方案。
    一般都是基于WCF、WebService等在服务端获取发送请求机器的信息,然后再返回客户端,该方法可以实现;
    同时可以在

  • fmp helper下载_sftp下载

    fmp helper下载_sftp下载1.下载安装https://teleport-pro.en.softonic.com/或者其他激活成功教程网站2.运行扒站打开软件后File->NewProjectWizard里面可以选择许多TP能做的事情,比如创建一个网站的副本,根据关键词查询网站等。下载网站选择第一个。输入想要下载的网址,和对应的下载深度。选择仅下载文本或是全部。其次如果该网站需要登陆的话需要输入登陆网…

  • 如何理解python报错信息_csb报错

    如何理解python报错信息_csb报错#软件版本python3.7pycharm2018.3.1遇到的问题解释及处理方法#1报错#TypeError:‘key’isaninvalidkeywordargumentforprint()代码:def_cmp(x,y):ifx>y:return-1ifx<y:return

  • 统计推断——假设检验——方差分析之多重比较(LSD法、Sidak法、Bonferroni法、Dunnett法、Tukey法、SNK 法、Duncan法)「建议收藏」

    统计推断——假设检验——方差分析之多重比较(LSD法、Sidak法、Bonferroni法、Dunnett法、Tukey法、SNK 法、Duncan法)「建议收藏」在一个试验中,有个处理平均数间比较时,其全部可能的相互比较对数有个,这种比较是复式比较,亦称多重比较(multiplecomparisons)。为什么要做多重比较呢?方差分析后做多重比较有很多好处:误差由多个处理内的变异合并估计,自由度增大了,因而比较的精确度也增大了。 检验显著,说明可以判定多个处理间存在显著的变异。因此方差分析后再做多重比较,称为Fisher氏保护性多重比较(F…

  • python生成器详解_Python 生成器

    python生成器详解_Python 生成器生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。

  • 向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )

    向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )写道现在,我说一说360的微创新,这是我这么多年来做互联网产品的一个总结,对我来说是方法论,希望能跟朋友们分享,切磋。我记得比尔-盖茨有一句话,大意是他愿意为微软一直服务下去,因为他喜欢跟一群聪明人打交道。跟聪明人在一起交流是快乐的,大家都是聪明人,大拿不少,即使拍砖也能拍出水平。闲话少叙,言归正传。但提前说明一下,这篇博文牵涉到一些产品功能,不感兴趣的同志可以掠过。2008年7月

发表回复

您的电子邮箱地址不会被公开。

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