fread函数概述和使用

#include<stdio.h>
#include<string>
#include<stdlib.h>

#define BUFFSIZE 1204//内存大小

using namespace std;

int copyfile(const char* txt1, const char* txt2) {
	FILE* fp1 = NULL, * fp2 = NULL;

	fopen_s(&fp1, txt2, "rb");//fpq读取txt2路径文件rb只读
	if (fp1 == NULL) {
		throw new string("文件不存在");
	}

	fopen_s(&fp2, txt1, "wb");//fp2写入txt1路径文件rb只写
	if (fp2 == NULL) {
		throw new string("写不进文件");
	}

	char Buff[BUFFSIZE];
	int readlen, writelen;
	while ((readlen = fread(Buff, 1, BUFFSIZE, fp1)) > 0) {//fread成功返回1进行循环
		writelen=fwrite(Buff, 1, readlen, fp2);//循环写
		if (readlen != writelen) {//任何一个出错时报错
			throw new string("复制文件出错");
		}
	}
	fclose(fp1);
	fclose(fp2);
	return 0;
}


int main() {
	int red;
	try{
	red = copyfile("E:/C++demo/读写文件异常处理/txt11.txt",
		"E:/C++demo/读写文件异常处理/txt22.txt");
	}
	catch (string *error) {
		printf("捕捉到异常:%s\n", error->c_str());
		delete error;
	}
	return 0;
}

二进制文件读写两个重要的函数 , fread 和 fwrite , fread 用于读取文件 , fwrite 用于写出文件 ;

fread / fwrite 函数 既可以操作 二进制文件 , 又可以操作 文本文件 ;

getc / putc 函数 , fscanf / fprintf 函数 , fgets / fgets 函数 , 只能用于操作 文本文件 ;

1>fread

fread 函数作用 : 从文件中读取若干字节数据到内存缓冲区中 ;

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

1>void *buffer 参数 : 将文件中的二进制数据读取到该缓冲区中 ;

2>size_t size 参数 : 读取的 基本单元 字节大小 , 单位是字节 , 一般是 buffer 缓冲的单位大小 ;

如果 buffer 缓冲区是 char 数组 , 则该参数的值是 sizeof(char) ;
如果 buffer 缓冲区是 int 数组 , 则该参数的值是 sizeof(int) ;

3>size_t count 参数 : 读取的 基本单元 个数 ;

4>FILE *stream 参数 : 文件指针 ;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值