定义的结构体:

struct student
{
]; //学生学号
];  //学生姓名

struct student *next;  //next 指针 指向 struct  student 类型的变量
}stu;

创建文件:

void Create_File_List()
{
    FILE *fp;
    if ((fp = fopen("student.txt","rb"))==NULL)                 /*如果此文件不存在*/
    {
        if ((fp = fopen("student.txt","wb+"))==NULL)
        {
            outtextxy(, , "无法建立文件!");  

        }
    }
}

写入文件信息:

/***************

函数功能:录入出勤学生

/***************/

void add_student(  )
{
    FILE *fp;
    fp=fopen("student.txt","a+");
    strcpy(stu.ID,"");// 与链表head结点 无数据 有关
    strcpy(stu.name,"");
    fwrite(&stu,,fp);
    InputBox(stu.ID,,"请输入学生学号");
    outtextxy(,,stu.ID);
    Sleep();
    InputBox(stu.name,,"请输入学生姓名");
    outtextxy(,,stu.name);
    Sleep();
    fwrite(&stu,,fp);
    fclose(fp);
  }

这里值得注意的是:写入文件的时候,开始时要事先写入第一个数据,这里写入的空数据,这与链表head处数据为空有关。

从已经写入的文件中读到链表中:

/***************

函数功能:创建链表

/***************/
struct student * CreateList()
{
    struct student *pointer,*head,*q;//head指针为链表的头结点,是找到链表的唯一依据,如果head指针丢失,那么整个链表就找不到了;p指针总是指向新申请的结点;q指针总是指向尾节点
    struct student temp;//定义结构体别名
    FILE *fp;
    pointer=(struct student *)malloc(sizeof(struct student ));  // p指向新开辟的节点内存
    head = pointer;    //开辟头结点内存      头结点中没有学生成绩信息
    q = pointer;       //开辟尾节点内存   q指针总是指向尾节点
    q->next = NULL; // //标志链表的结束 尾节点的特点是next成员的值为NULL,它是最后一个节点,作为链表结束的标志,NULL是一个符号常量表示值为0的地址
    fp=fopen("student.txt","rb");
    ,fp)!=)//从文件中读结构体块
    {      pointer=(struct student*)malloc(sizeof(struct student)); // p指向新开辟的节点内存
    strcpy(pointer->ID,temp.ID);
    strcpy(pointer->name,temp.name);
    q->next=pointer;  //把新节点挂到原尾节点之后
    q=q->next;  //q指针指向新的尾节点
    }
    q->next=NULL;//标志链表的结束
    fclose(fp);
    return head;
}

从链表中输出打印到屏幕中数据:

/***************

函数功能:
输出链表 返回:指向链表表头的指针

/***************/

void Print_List(struct student *head)
{
    struct student* pointer;
    pointer=head->next; //跳过无数据的头结点
while(pointer!=NULL)
        {
        outtextxy(x,y,pointer->ID);
        outtextxy(x,y,pointer->name);
        pointer=pointer->next;//指向下一个节点
        }}

C语言中怎么将文件里的数据创建到(读到)链表中?的更多相关文章

  1. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

  2. Android中fragment_main.xml文件里的组件获取的问题

    package com.dhy.phonedial; import android.app.Activity; import android.app.Fragment; import android. ...

  3. spring boot 在框架中注入properties文件里的值(Spring三)

    前一篇博客实现了打开第一个页面 链接:https://blog.csdn.net/qq_38175040/article/details/105709758 本篇博客实现在框架中注入propertie ...

  4. 修改Android中strings.xml文件, 动态改变数据

    有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name=&qu ...

  5. 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表

    本文出处:http://blog.csdn.net/u012377333/article/details/47022699 从上面的几篇文章中,能够知道怎样使用Shell创建数据库.使用Shell创建 ...

  6. 《程序实现》从xml、txt文件里读取数据写入excel表格

    直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java ...

  7. 图解如何 将Excel里的数据导入到sql server数据库中

    项目中,经常会碰到如何将Excel里的数据导入到sql server中的问题. 下面,图解如何实现导入Excel中的数据到sql server 2008 R2: Excel截图如下: 查询pub数据库 ...

  8. 在vue项目中的js文件里使用vue实例

    参考的网址:https://blog.csdn.net/weixin_34353714/article/details/86958742 不为其他,就为了记录一下,方便以后查看: 第一种方法: 1.首 ...

  9. Xcode中Info.plist文件里的"Bundle versions string, short" 跟 "Bundle version" 的区别

    Bundle versions string, short:用于itunes上显示的版本号,即对外的版本.(最多是3个部分组成即 x.y.z) Bundle version:内部项目管理的版本号,不对 ...

随机推荐

  1. 【转】MySQL的Replace into 与Insert into on duplicate key update真正的不同之处

    原文链接:http://www.jb51.net/article/47090.htm   今天听同事介绍oracle到mysql的数据migration,他用了Insert into ..... on ...

  2. SlimerJS – Web开发人员可编写 JS 控制的浏览器

    SlimerJS 是一个提供给 Web 开发人员,可通过脚本编程控制的浏览器.它可以让你使用 Javascript 脚本操纵一个网页:打开一个网页,点击链接,修改的内容等,这对于做功能测试,页面自动机 ...

  3. sql搜索数据库中具有某列的表

    在接口中明明有某个节点,但在数据库中却找不到,为此本人写了一个sql,以供快速查找. Select distinct syscolumns.name,sysobjects.name from sysc ...

  4. Hybrid框架UI重构之路:四、分而治之

    上文回顾:Hybird框架UI重构之路:三.工欲善其事,必先利其器 上一篇文章有说到less.grunt这两个工具,是为了css.js分模块使用的.UI框架提供给使用者的时候,是一个大的xxx.js. ...

  5. 妙用Javascript中apply、call、bind

    对apply.call.bind的认识,并且列出一些它们的妙用加深记忆.   apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(cont ...

  6. 如何在SharePoint2010中创建自定义电子邮件警报处理程序

    字段,如项目名称字段中,将被截断到的电子邮件通知中的 70 个字符.要解决 70 个字符的限制,请使用"更多信息"一节中的介绍的方法. 要嵌入电子邮件通知中的其他内容. 您想要更改 ...

  7. html5学习笔记:canvas

    1.什么是canvas? 可以绘制图形的标签.一般用javascript来绘制. 2.创建一个画布 <!DOCTYPE html> <html> <head> &l ...

  8. sharepoint2013- Office web app server2013详细的安装和部署

    前提条件 Office web app server2013不能跟sharepoint server2013安装在同一台服务器上,如果安装在同一台服务器上将提示如下错误: 后来查询资料:  按照官方文 ...

  9. Android PopupWindow的使用和分析

    Android PopupWindow的使用和分析 PopupWindow使用 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activi ...

  10. DirectX基础 常用函数语句

    DirectX常用函数语句 常用数学类函数: 计算向量的长度(模): FLOAT D3DXVec3Length(CONST D3DXVECTOR3* pV); 向量的规范化: D3DXVECTOR3 ...