c语言如何读文件,如何正确用C语言读取文件

本文介绍了如何在C语言中正确读取和存储文件,特别是二进制文件。通过示例展示了结构体的存储方式,解释了fprintf与fread/fwrite的区别,并提供了优化文件访问性能的技巧,强调了使用固定长度存储和fseek函数进行文件定位的重要性。
摘要由CSDN通过智能技术生成

如何正确用C语言读取文件

在C语言中可以将相关定义的数据按照内存的原样写入文件,这对于大规模数据来说比较方便,因为文件的尺寸比单纯的ASCII存储要小很多。

下面简单说明自己在存储如下定义的结点数据的体会。以二进制存储文件时,只存储uid(人名), pwd(密码), org(组织),

modifyDate(修改日期)中的六个变量。程序本身是有一个循环双链表,不存储指针数据。按照人名uid降序存入文件,并建立首字符的索引。

#define LENGTH_PWD 32

#define LENGTH_UID 24

#define LENGTH_ORG 8

typedef struct Date

{

int year,month,day;

int hour,minute,second;

}DATE;

typedef struct People

{

char uid[LENGTH_UID];

char pwd[LENGTH_PWD];

char org[LENGTH_ORG];

DATE modifyDate;

struct People *next,*prior;

}PEOPLE;

在使用ftell获取每行记录首个位置后存入索引文件。由于数据文件按字母顺序排列的,所以只要知道不同字符的起点,之后再返回定位数据文件,这样不必从开始处查找另外当之后的数据过了匹配的关键字的时候可以直接返回。杂乱顺序的数据,查找会从开始一直查找到末尾。而排序好的,只有最坏情况才会扫描整个数据文件。建立索引并排序,可以大大减少查找的次数提高查询的效率。

经过仔细调试发现

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值