fread fwrite

来源:互联网 发布:淘宝分期免息怎么设置 编辑:程序博客网 时间:2024/05/22 03:11
fread
  功 能: 从一个流中读数据
  函数原型: size_t fread(void*buffer,size_tsize,size_tcount,FILE*stream); 
  参 数:
  1.用于接收数据的地址(指针)(buffer)
  2.单个元素的大小(size) :单位是字节而不是位,例如读取一个int型数据就是4个字节
  3.元素个数(count)
  4.提供数据的文件指针(stream)

  返回值:读取的元素的个数


 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
  说明:写入到文件的哪里? 这个与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大,而且是fseek函数对此函数没有作用。




#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "IO.h"

int main(int argc, char *argv[])
{
    int i;
    size_t rn;
    uint8_t arr[3];
    FILE *src_fp, *dst_fp;

    src_fp = fopen_r("123.bin", "rb");
    dst_fp = fopen_r("321.bin", "wb");

    for ( ; ; )
    {
        rn = fread(arr, 1, 3, src_fp);
        if (rn == 0)
            break;
        fwrite(arr, 1, rn, dst_fp);
    }
    fclose(src_fp);
    fclose(dst_fp);
    return 0;
}

原创粉丝点击