C / C++ / Python 文件相关操作

最近工作与读取、存储文件打交道比较多,特记录一下。


C

注意包含头文件:#include<stdio.h>

fopen

函数定义:FILE * fopen ( const char * path, const char * mode )
返回值:如果文件成功打开,返回指向FILE对象的指针,否则返回NULL
参数:path为文件路径;mode为打开文件方式,具体如下表:

mode 功能
"r" read 打开只读文件,文件必须存在
"w" write 打开只写文件,如果文件已存在,则将已有文件内容舍弃,按照空文件对待
"rb" read binary 只读打开二进制文件,文件必须存在
"wb" write binary 只写打开二进制文件,如果文件已存在,则将已有文件内容舍弃,按照空文件对待
"r+" read/update 打开可读写文件,文件必须存在
"w+" write/update 打开可读写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件
"a" append 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾
fread

函数定义:size_t fread(void *buffer, size_t size, size_t count, FILE *file)
返回值:成功读取的对象个数,若出现错误,则可能小于count
参数:buffer为读取出的数据存放地址;size为块长度,count为块数量,实际读取字节数size * countfile为指向FILE类型的指针

fwrite

函数定义:size_t fwrite(const void *buffer, size_t size, size_t count, FILE *file)
返回值:成功写入的对象个数,若出现错误,则可能小于count
参数:buffer为待写入数据的存放地址;size为块长度,count为块数量,实际写入字节数size * countfile为指向FILE类型的指针

fclose

函数定义:int fclose(FILE *stream)
返回值:如果流成功关闭,则该方法返回零。如果失败,则返回 EOF

示例
#define OUT_FEATURE_SIZE 1024
int main()
{
    printf("fopen begin\n");

    float feature[OUT_FEATURE_SIZE];                             // 特征数组
    FILE *fp;
    fp = fopen("feature.txt", "rb");                            // 打开二进制特征文件
    fread(feature, OUT_FEATURE_SIZE * sizeof(float), 1, fp);    // 将 txt 文件中存储的特征读入到 float 数组中
    fclose(fp);            

    printf("fopen end\n");

    return 0;
}

C++

注意包含头文件:#include <fstream>

ifstream
ofstream
fstream

参考信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。