cheng_you_know

学而时习之!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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。

posted on 2013-06-05 15:12  cheng_you_know  阅读(159)  评论(0编辑  收藏  举报