iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言怎么实现链表与文件存取
  • 639
分享到

C语言怎么实现链表与文件存取

2023-06-30 10:06:11 639人浏览 独家记忆
摘要

今天小编给大家分享一下C语言怎么实现链表与文件存取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。此处为main函数的内容in

今天小编给大家分享一下C语言怎么实现链表与文件存取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

此处为main函数的内容

int main(void){    char filename[50];    printf("How many ?: ");    scanf("%d", &n);    printf("please input filename: ");    scanf("%s", filename);    Create();       //调用函数建立链表    save(filename); //调用函数存到文件    free(phead);//释放phead内存    show(filename); //调用函数输出文件    system("pause");    return 0;}

一、输入数据到链表中

建立链表并输入数据到链表里

代码如下:

typedef struct stu{    char name[20];    char adr[20];    int tel;    struct stu* pnext;} stu;int n;//n存着信息条数stu* phead=NULL;//phead为链表首地址 void Create()          //建立链表{    stu *pend,*pnew;//尾节点,新节点    pend=phead =(stu*)malloc(sizeof(stu));//分配内存给首节点    printf("please first input Name, Adress and telephone:\n");    for(int i=0;i<n;i++)    {        pnew=(stu*)malloc(sizeof(stu));  //分配新节点        pend->pnext=pnew;   //原来的尾节点指向新节点        pnew->pnext=NULL;  //新节点的指针为NULL        printf("NO.%d: ",i+1);        scanf("%s", pend->name);        scanf("%s", pend->adr);        scanf("%d",&pend->tel);        pend=pnew;  //赋值后指向尾节点    }    pnew=pnew->pnext;//指向NULL    free(pnew);      //释放pnew内存}

二、把链表数据存入文件

此处用到了fopen、fprintf、fclose等文件操作函数

代码如下:

void save(char *filename){    FILE *w;//文件指针    if ((w = fopen(filename, "wb")) == NULL){           printf("cannot open file\n");        exit(1);    }    for (int i = 0; i < n; i++)  //链表数据循环输入到文件内    {         fprintf(w,"%s ",phead->name);         fprintf(w,"%s ",phead->adr);         fprintf(w,"%d", phead->tel);         fprintf(w,"%s","\r\n");//换行         phead=phead->pnext;//指向下一个节点    }    fclose(w);//关闭文件}

三、输出文件

先把文件内容保存到结构体数组内,然后再通过数组输出到屏幕上。

代码如下:

void show(char *filename)//输出文件{    FILE *fp;//文件指针    stu info[100];  //负责存放文件中的数据,然后输出    if ((fp = fopen(filename, "rb")) == NULL){           printf("cannot open file\n");        exit(1);    }    for (int i = 0; i < n; i++)    {        fscanf(fp,"%s",&(info[i].name));//输出数据到数组        fscanf(fp,"%s",&(info[i].adr));        fscanf(fp,"%d",&(info[i].tel));        printf("%10s%15s%15d\n", info[i].name,        info[i].adr, info[i].tel); //输出数据到屏幕    }    fclose(fp); //关闭文件}

完整代码

#include<stdio.h>#include<stdlib.h>#include<process.h>typedef struct stu{    char name[20];    char adr[20];    int tel;    struct stu* pnext;} stu;int n;//n存着信息条数stu* phead=NULL;//phead为链表首地址 void Create(){    stu *pend,*pnew;//尾节点,新节点    pend=phead =(stu*)malloc(sizeof(stu));//分配内存给首节点    printf("please first input Name, Adress and telephone:\n");    for (int i = 0; i < n; i++)    {        pnew=(stu*)malloc(sizeof(stu));  //分配新节点        pend->pnext=pnew;   //原来的尾节点指向新节点        pnew->pnext=NULL;   //新节点的指针为NULL        printf("NO.%d: ",i+1);        scanf("%s", pend->name);//输入数据存到链表中        scanf("%s", pend->adr);        scanf("%d",&pend->tel);        pend=pnew;  //赋值后指向尾节点    }    pnew=pnew->pnext;//指向NULL    free(pnew);      //释放pnew内存}void save(char *filename){    FILE *w;//文件指针    if ((w = fopen(filename, "wb")) == NULL){           printf("cannot open file\n");        exit(1);    }    for (int i = 0; i < n; i++)  //链表数据循环输入到文件里    {         fprintf(w,"%s ",phead->name);//数据存入到文件         fprintf(w,"%s ",phead->adr);         fprintf(w,"%d", phead->tel);         fprintf(w,"%s","\r\n");//换行         phead=phead->pnext;//指向下一个节点    }    fclose(w);//关闭文件}void show(char *filename){    FILE *fp;//文件指针    stu info[100];  //负责存放文件中的数据,然后输出    if ((fp = fopen(filename, "rb")) == NULL){           printf("cannot open file\n");        exit(1);    }    for (int i = 0; i < n; i++)    {        fscanf(fp,"%s",&(info[i].name));//输出数据到数组        fscanf(fp,"%s",&(info[i].adr));        fscanf(fp,"%d",&(info[i].tel));        printf("%10s%15s%15d\n", info[i].name,         info[i].adr, info[i].tel);//输出数据到屏幕    }    fclose(fp);} int main(void){    char filename[50];    printf("How many ?:\n");    scanf("%d", &n);    printf("please input filename: ");    scanf("%s", filename);     Create();       //调用函数建立链表    save(filename); //调用函数存到文件    free(phead);//释放phead内存    show(filename); //调用函数输出文件    system("pause");    return 0;}

以上就是“C语言怎么实现链表与文件存取”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网其他教程频道。

--结束END--

本文标题: C语言怎么实现链表与文件存取

本文链接: https://www.lsjlt.com/news/328099.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言怎么实现链表与文件存取
    今天小编给大家分享一下C语言怎么实现链表与文件存取的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。此处为main函数的内容in...
    99+
    2023-06-30
  • C语言实现链表与文件存取的示例代码
    目录此处为main函数的内容一、输入数据到链表中二、把链表数据存入文件三、输出文件完整代码本程序主要功能是建立链表,然后把链表数据存储到文件中,然后把文件数据存储到数组中并输出。 不...
    99+
    2022-11-13
  • c语言怎么将链表中数据存入文件
    在C语言中,可以使用文件操作相关的函数来将链表中的数据存入文件中。下面是一个简单的示例代码:c#include #include /...
    99+
    2023-10-18
    c语言
  • C语言双链表怎么实现
    本篇内容介绍了“C语言双链表怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义链表是通过一组任意的存储单元来存储线性表中的数据元素,...
    99+
    2023-06-29
  • C语言怎么实现循环双链表
    这篇文章主要介绍“C语言怎么实现循环双链表”,在日常操作中,相信很多人在C语言怎么实现循环双链表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么实现循环双链表”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-25
  • c语言怎么读取文件数据并保存
    在C语言中,可以使用stdio.h头文件中的函数来读取文件数据并保存。具体步骤如下:1. 打开文件:使用fopen函数打开要读取的文...
    99+
    2023-08-15
    c语言
  • c语言怎么读取mat文件
    在C语言中,可以使用开源库MatIO来读取MAT文件。 以下是一个示例代码,演示如何使用MatIO库读取MAT文件中的数据: #in...
    99+
    2023-10-26
    c语言
  • 怎么用C语言链表实现商品库存管理系统
    这篇文章主要为大家展示了“怎么用C语言链表实现商品库存管理系统”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用C语言链表实现商品库存管理系统”这篇文章吧。具体内容如下代码:#include&...
    99+
    2023-06-29
  • 一文弄懂C语言如何实现单链表
    目录一、单链表与顺序表的区别:一、顺序表:二、链表二、关于链表中的一些函数接口的作用及实现1、头文件里的结构体和函数声明等等2、创建接口空间3.尾插尾删4、头插头删 5、单...
    99+
    2022-11-12
  • C语言双向链表是什么及怎么实现
    本篇内容介绍了“C语言双向链表是什么及怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、双向链表的概念概念:概念:双向链表是每个结点...
    99+
    2023-06-30
  • C语言链表实现商品库存管理系统
    本文实例为大家分享了C语言链表实现商品库存管理系统的具体代码,供大家参考,具体内容如下 代码: #include <stdio.h> #include <stdli...
    99+
    2022-11-13
  • C语言中怎么实现链栈
    这篇文章将为大家详细讲解有关C语言中怎么实现链栈,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。链栈图解链栈的常规操作LinkStack  InitLinkStack();// ...
    99+
    2023-06-15
  • c语言怎么读取文件行数
    要读取文件的行数,可以按照行的方式逐行读取文件内容,并计算行数。下面是一个示例代码:```c#include int main() ...
    99+
    2023-09-15
    c语言
  • C语言怎么实现带头双向循环链表
    本篇内容主要讲解“C语言怎么实现带头双向循环链表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现带头双向循环链表”吧!创建链表存储结构我们需要创建一个结构体来存储一个链表结点的相关信...
    99+
    2023-06-30
  • C语言怎么实现单链表的基本功能
    本篇内容主要讲解“C语言怎么实现单链表的基本功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现单链表的基本功能”吧!首先简单了解一下链表的概念:要注意的是链表是一个结构体实现的一种...
    99+
    2023-06-21
  • C语言带头双向循环链表怎么实现
    这篇“C语言带头双向循环链表怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言带头双向循环链表怎么实现”文章吧。带...
    99+
    2023-06-30
  • C语言怎么实现线性动态单向链表
    本篇内容主要讲解“C语言怎么实现线性动态单向链表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现线性动态单向链表”吧!什么是链表链表是数据结构里面的一种,线性链表是链表的一种,线性链...
    99+
    2023-06-30
  • C语言数据结构之单链表怎么实现
    本文小编为大家详细介绍“C语言数据结构之单链表怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言数据结构之单链表怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一.为什么使用链表在学习链表以前,...
    99+
    2023-07-02
  • C语言怎么实现带头双向环形链表
    本篇内容主要讲解“C语言怎么实现带头双向环形链表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么实现带头双向环形链表”吧!双向循环链表上一次我们讲了单向无头非循环链表的实现,单向无头非循...
    99+
    2023-06-21
  • C语言怎么实现文件操作
    这篇文章将为大家详细讲解有关C语言怎么实现文件操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是文件磁盘上的文件就是文件。在程序设计中,我们一般谈的文件有两种:程序文件和数据文件程序文件包括源程序文...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作