在没有学习数据库之前,文件读写是学习C/C++初期遇到的比较麻烦的事情,其不仅要求多个标准库函数的配合使用,还要考虑到存储信息的方式(二进制文件/文本文件)。以下是我对于近期对于“文件读写”的经验总结。
二进制文件与文本文件的区别在于,数据存储时,是以什么形式存进去的(示例代码将在下面给出):
若你直接将数据写入文件中,那么数据是以二进制的形式存储,称为二进制文件;
若你是把数据先转换成字符串,再写入文件中,那么数据是以文本的形式存储,称为文本文件。
一、fopen的文件读写
首先,我们得了解ANSIC标准中C语言标准库中的文件读写函数(文本文件):
- 打开文件:FILE *fopen(const char *path, const char *mode);
- 读文件 :int fscanf(FILE *stream, const char *format, ...);
- 写文件 :int fprintf(FILE *stream, const char *format, ...);
- 文件结束:int feof(FILE *stream);
- 关闭文件:int fclose(FILE *fp);
以上一套文件读写函数的使用规则如下:
- 使用fopen函数,通过文件路径(path)和操作方式(读:"r",写:"w",添加:"a"),获取操作改文件的文件指针(FILE*);
//以读的方式,打开一个文本文件a.txt
FILE* ft_r = fopen("data/a.txt","r");
//以写的方式,打开一个文本文件a.txt
FILE* ft_w = fopen("data/a.txt","w");
<