C++文件读写实例(BinWriter)
从源文件中读取指定位置的一段数据写入到目的文件的指定位置
#include <iostream>
#include <fstream>
using namespace std;
int main(int n,char** args)
{
if(n<6){
cout<<"Usage: BinWriter src_filename read_offset size des_filename write_offset";
exit(0);
}
char *src_filename=args[1];
long read_offset=atol(args[2]);//偏移量
int bufsize=atoi(args[3]);
char *des_filename=args[4];
long write_offset=atol(args[5]);//偏移量
FILE *fp_read=fopen(src_filename,"rb+");
FILE *fp_write=fopen(des_filename,"rb+");
if(fp_read==NULL){
cout<<"ERROR:fail to open source file!";
exit(0);
}
if(fp_write==NULL){
cout<<"ERROR:fail to open destination file!";
exit(0);
}
//read source file to buf
char *buf=new char[bufsize];
int read_fromwhere=0;//偏移基址
fseek(fp_read,read_offset,read_fromwhere);
fread(buf,sizeof(char),bufsize,fp_read);
//write buf to destination file
int write_fromwhere=0;//偏移基址
fseek(fp_write,write_offset,write_fromwhere);
fwrite(buf,sizeof(char),bufsize,fp_write);
cout<<"written success!";
fclose(fp_read);
fclose(fp_write);
delete buf;
return 0;
}