C语言文件读取

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:22:18
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获取每行记录首个位置后存入索引文件。由于数据文件按字母顺序排列的,所以只要知道不同字符的起点,之后再返回定位数据文件,这样不必从开始处查找另外当之后的数据过了匹配的关键字的时候可以直接返回。杂乱顺序的数据,查找会从开始一直查找到末尾。而排序好的,只有最坏情况才会扫描整个数据文件。建立索引并排序,可以大大减少查找的次数提高查询的效率。

经过仔细调试发现,当写入以下面的方式,首次读取前面字符串均正确,但是之后的就错位了,通过UltraEdit的十六进制观看。整数实际存取与其位数有关。其中visit为PEOPLE类型的指针指向数据结点。