C语言中怎么将文件里的数据创建到(读到)链表中?
定义的结构体:
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语言中怎么将文件里的数据创建到(读到)链表中?的更多相关文章
- python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件
python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...
- Android中fragment_main.xml文件里的组件获取的问题
package com.dhy.phonedial; import android.app.Activity; import android.app.Fragment; import android. ...
- spring boot 在框架中注入properties文件里的值(Spring三)
前一篇博客实现了打开第一个页面 链接:https://blog.csdn.net/qq_38175040/article/details/105709758 本篇博客实现在框架中注入propertie ...
- 修改Android中strings.xml文件, 动态改变数据
有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name=&qu ...
- 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表
本文出处:http://blog.csdn.net/u012377333/article/details/47022699 从上面的几篇文章中,能够知道怎样使用Shell创建数据库.使用Shell创建 ...
- 《程序实现》从xml、txt文件里读取数据写入excel表格
直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java ...
- 图解如何 将Excel里的数据导入到sql server数据库中
项目中,经常会碰到如何将Excel里的数据导入到sql server中的问题. 下面,图解如何实现导入Excel中的数据到sql server 2008 R2: Excel截图如下: 查询pub数据库 ...
- 在vue项目中的js文件里使用vue实例
参考的网址:https://blog.csdn.net/weixin_34353714/article/details/86958742 不为其他,就为了记录一下,方便以后查看: 第一种方法: 1.首 ...
- Xcode中Info.plist文件里的"Bundle versions string, short" 跟 "Bundle version" 的区别
Bundle versions string, short:用于itunes上显示的版本号,即对外的版本.(最多是3个部分组成即 x.y.z) Bundle version:内部项目管理的版本号,不对 ...
随机推荐
- CI框架源码阅读笔记3 全局函数Common.php
从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...
- GJM : 安装SqlServer遇到问题的解决方案 [原创]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- [转]Dcloud App离线本地存储方案
原文地址:http://ask.dcloud.net.cn/article/166 HTML5+的离线本地存储有如下多种方案:HTML5标准方案:cookie.localstorage.session ...
- Bootstrap源码分析之dropdown
源码分析: Dropdowns.scss:下拉框模块 Javascripts/bootstrap/dropdown.js:实现下拉框响应 实现功能及原理: 下拉选项卡,默认不能实现显示选中项的功能 原 ...
- Restive.js – 轻松让网站变成响应式和自适应
Restive.js 是一个 jQuery 插件,可以帮助您轻松快捷地添加响应式功能到你网站,适应几乎所有拥有 Web 功能的设备.使用设备检测,高级管理断点,以及方向管理的组合,Restive.js ...
- JS中数组去除重复的方法
function unique(arr) { var result = [], hash = []; for (var i = 0, elem; (elem = arr[i]) != null; i+ ...
- 如何停止CSS3的动画?
前言 我们在移动端一般使用zepto框架,与其说zepto是jquery的轻量级替代版,不如说是html5替代版我们在js中会用到animate方法执行动画,这个家伙可是真资格的动画,完全是css一点 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点(转)
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- ionic + cordova 使用 cordova-gallery-api 获取本地相册所有图片
cordova-gallery-api 插件定义一个全局galleryapi对象,提供查询图库相册的方法 安装 cordova-gallery-api: cordova plugin add http ...
- Android-Using DDMS
原文:http://developer.android.com/tools/debugging/ddms.html#how-ddms-works Android提供了一个debug工具叫做:DDMS, ...