C语言关于文件操作

1. 读取二进制文件,要用fopen(,”rb”);

2. 计算文件的字节数目,文件指针移动函数fseek(),可以方便的定位。

FILE *f_frame = NULL;
    int number = 0;
    char frame_char[100];
    int count =0;
    sprintf(frame_char,"E:\\frame%d.bin",number);  //格式化字符串
    f_frame = fopen(frame_char,"rb");
    if(f_frame == NULL)
        exit(-1);
    fseek(f_frame,0L,SEEK_END); //文件指针移动到尾部
    count = ftell(f_frame);
    rewind(f_frame);  //文件指针回到起点

3. fread(),fwrite(),用于读写二进制数据块binary block。

size_t fread(void *buffer,size_t size,size_t count,FILE *stream);

功 能:从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回值等于count。如不成功,返回值不等于count.

参 数:buffer: 用于接收数据内存地址,大小至少是size*count字节.

size :单个元素的大小,单位是字节

count: 元素的个数,每个元素是size字节.

stream file pointer输入流

返回值:

实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);

注意:这个函数以二进制形式对文件进行操作,不局限于文本文件

返回值:返回实际写入的数据块数目

(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址;

(2)size:要写入内容的单字节数;

(3)count:要进行写入size字节的数据项的个数;

(4)stream:目标文件指针

(5)返回实际写入的数据项个数count。

原文地址:https://www.cnblogs.com/cheng07045406/p/3118980.html