Beinsearch
7/28/2017 - 1:58 AM

读写二进制文件.cpp

#include <stdio.h> //标准输入输入出的头文件,printf和scanf都在这里了  
#include <stdlib.h>  //标准库头文件,内存分配、数学运算等都在这里了  
//读写二进制文件
int main(void)
{
	FILE *infile,*outfile;
	infile=fopen("D:/[Qt5开发及实例(第2版)(含CD光盘1张)][陆文周][程序源代码].rar","rb"); //获取文件的指针
	outfile=fopen("E:/1.rar","wb"); 
	if( outfile == NULL || infile == NULL )  
		exit(1);  

	char *pBuf;  //定义文件指针
	fseek(infile,0,SEEK_END); //把指针移动到文件的结尾 ,获取文件长度
	int len=ftell(infile); //获取文件长度
	pBuf=new char[len+1]; //定义数组长度
	rewind(infile); //把指针移动到文件开头 因为我们一开始把指针移动到结尾,如果不移动回来 会出错
	int rc = fread(pBuf,sizeof(unsigned char),len,infile); //读文件
	pBuf[len]=0; //把读到的文件最后一位 写为0 要不然系统会一直寻找到0后才结束

	fwrite( pBuf, sizeof( unsigned char ), len, outfile );  

	fclose(infile); // 关闭文件
	fclose(outfile);  
	return 0;
}