c语言链表从本地文件中读取和写入数据
1 typedef struct Data{
2 40 char *name;
3 41 char *IDCARD;
4 42 char *job_id;
5 43 char *length;
6 44 char *education;
7 45 char *marriage;
8 46 int local;
9 47 }Data;
10 48
11 49 typedef struct node{
12 50 Data *data;
13 51 struct node *next;
14 52 struct node *prior;
15 53 }node;
16 54
17 55 typedef struct doublelist{
18 56 node *head;
19 57 node *tail;
20 58 size_t size;
21 59 }doublelist;
22 60
1 void inserttail2(node *newnode)
2 126 {
3 127 if(list->size == 0){
4 128 list->tail = newnode;
5 129 list->head = newnode;
6 130 }
7 131 else{
8 132 newnode->prior = list->tail;
9 133 list->tail->next = newnode;
10 134 list->tail = newnode;
11 135 }
12 136 list->size++;
13 137 }
14 void SaveInformation()
15 380 {
16 381 node *temp = list->head;
17 382 FILE *file = fopen("staff_information.txt","w");//进行追加写
18 383 if(file == NULL){
19 384 return;
20 385 }
21 386 else{
22 387 while(temp != NULL){
23 388 fprintf(file,"%s\t\t",temp->data->name);
24 389 fprintf(file,"%s\t\t",temp->data->IDCARD);
25 390 fprintf(file,"%s\t\t",temp->data->job_id);
26 391 fprintf(file,"%s\t\t",temp->data->length);
27 392 fprintf(file,"%s\t\t",temp->data->education);
28 393 fprintf(file,"%s\n\n",temp->data->marriage);
29 394 temp = temp->next;
30 395 }
31 396 fclose(file);
32 397 }
33 398 }
34 399
35 400 void ReadInformation()
36 401 {
37 402 node *temp = list->head;
38 403 FILE *file = fopen("staff_information.txt","r");
39 404 if(file == NULL){
40 405 return;
41 406 }
42 407 else{
43 408 while(!feof(file)){
44 409 node *newnode = creat_node();//此函数返回值就为一个新节点,这行代码大家可以不用在意
45 410 fscanf(file,"%s\t\t",newnode->data->name);
46 411 fscanf(file,"%s\t\t",newnode->data->IDCARD);
47 412 fscanf(file,"%s\t\t",newnode->data->job_id);
48 413 fscanf(file,"%s\t\t",newnode->data->length);
49 414 fscanf(file,"%s\t\t",newnode->data->education);
50 415 fscanf(file,"%s\t\t",newnode->data->marriage);
51 416 inserttail2(newnode);//t尾插法插入节点
52 417 }
53 418 fclose(file);
54 419 }
55 420 return;
56 421 }
附上creat_node代码原型
1 node *creat_node(){
2 12 node *newnode;
3 13 newnode = (node *)malloc(sizeof(node));
4 14 newnode->data = (Data *)malloc(sizeof(Data));
5 15 if(newnode->data != NULL){
6 16 newnode->data->name = (char *)malloc(50 *sizeof(char));
7 17 newnode->data->IDCARD= (char *)malloc(50 *sizeof(char));
8 18 newnode->data->job_id = (char *)malloc(50 *sizeof(char));
9 19 newnode->data->length = (char *)malloc(50 *sizeof(char));
10 20 newnode->data->education = (char *)malloc(50 *sizeof(char));
11 21 newnode->data->marriage = (char *)malloc(50 *sizeof(char));
12 22 }
13 23 newnode->prior = NULL;
14 24 newnode->next = NULL;
15 25 return newnode;
16 26 }//创建一个新结点
大家照这个模板来就能解决大家的问题,顺式结构其实也几乎一样,希望能帮大家解决问题。
c语言链表从本地文件中读取和写入数据的更多相关文章
- 一些常用的文本文件格式(TXT,JSON,CSV)以及如何从这些文件中读取和写入数据
TXT文件: txt是微软在操作系统上附带的一种文本格式,文件以.txt为后缀. 从txt文件中读取数据: with open ('xxx.txt') as file: data=file.readl ...
- Servlet从本地文件中读取图片,并显示在页面中
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...
- 从PCD文件中读取点云数据
博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=84 在本小节我们学习如何从PCD文件中读取点云数据. 代码 章例1文件夹中, ...
- nodeks —— fs模块 —— 从流中 读取和写入数据
Fs流读取和写入数据 使用文件流来读取大文件不会卡顿 1, 从流中读取数据 var fs = require("fs"); var data = ''; var count = 0 ...
- C 语言实例 - 从文件中读取一行
C 语言实例 - 从文件中读取一行 从文件中读取一行. 文件 runoob.txt 内容: $ cat runoob.txt runoob.com google.com 实例 #include < ...
- java 中读取本地文件中字符
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- IOS Android支持中文与本地文件的读取写入
转自http://www.xuanyusong.com/archives/1069 和http://www.benmutou.com/archives/2094 前几天有个朋友问我为什么在IOS平台中 ...
- Java将对象保存到文件中/从文件中读取对象
1.保存对象到文件中 Java语言只能将实现了Serializable接口的类的对象保存到文件中,利用如下方法即可: public static void writeObjectToFile(Obje ...
- Unity3D研究院之IOS Android支持中文与本地文件的读取写
前几天有个朋友问我为什么在IOS平台中可以正常的读写文件可是在Android平台中就无法正常的读写.当时因为在上班所以我没时间来帮他解决,晚上回家后我就拿起安卓手机真机调试很快就定位问题所在,原 ...
随机推荐
- Code Spell Checker & VSCode 单词拼写验证
Code Spell Checker & VSCode 单词拼写验证 https://marketplace.visualstudio.com/items?itemName=streetsid ...
- vue template
vue template <template> <div class="custom-class"> ... </div> </templ ...
- vi, vim 使用教程
vim 使用教程 ```shcd lscd ../cd -pwdcprmmkdirtarmvmbtar -zcfchmodsshtopqfree ``` 数字0含空字符到行首,^不含空字符到行首.G移 ...
- shit LeetCode interview Question
shit LeetCode interview Question https://leetcode.com/interview/1/ 有点晕,啥意思,没太明白,到底是要按什么排序呀? 去掉 标识符 不 ...
- convert image to base64 in javascript
convert image to base64 in javascript "use strict"; /** * * @author xgqfrms * @license MIT ...
- Swift 5.1
Swift 5.1 WebView & WKWebView https://developer.apple.com/swift-playgrounds/ https://developer.a ...
- html2Canvas to Images
<script> $(function () { var content = document.getElementById("shareImages"); conte ...
- SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程01---搭建前端工程
豆宝社区项目实战教程简介 本项目实战教程配有免费视频教程,配套代码完全开源.手把手从零开始搭建一个目前应用最广泛的Springboot+Vue前后端分离多用户社区项目.本项目难度适中,为便于大家学习, ...
- PriorityQueue使用介绍
这玩意儿叫优先级队列,是一个类,继承了AbstractQueue类,实现了Serializable接口. jdk文档里是这么描述这玩意的: 基于优先级堆的无限优先级queue . 优先级队列的元素根据 ...
- EF多个表映射
public class Media // One entity table { public int Id { get; set; } public string Name { get; set; ...