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。