c++文件复制 每次复制的字节数不同结果不同
把一个文件复制到另一个文件,每次复制的字节数由自己指定(输入n),
输出源文件的全部字节数,以及第一次需要复制的字节数,和最后一次复制的内容(用来判断是符复制完全),
代码如下:
#include<fstream>
#include<iostream>
using namespace std;
void main()
{
int n(1);
char buff[1024];
strset(buff,'\0');
long bytes;
strset(buff,'\0');
fstream infile,outfile;
infile.open("E:\\3eee\\suns\\11_41.txt",ios::in);
outfile.open("E:\\3eee\\suns\\11_42.txt",ios::out|ios::trunc);
infile.seekg(0,ios::end);
bytes = infile.tellg();//计算从头到尾有多少个字节
infile.seekg(0,ios::beg);
cout<<"bytes:"<<bytes<<endl;
cout<<"cin:n=";
cin>>n;
infile.read(buff,bytes%n);//第一次读余数个
//infile.read(buff,bytes%n+1);//第一次读取n的余数个
cout<<"n:"<<n<<":"<<endl;
cout<<"strlen(buff)"<<strlen(buff);
while(!infile.eof())
{
outfile.write(buff,strlen(buff));
infile.read(buff,n);
}
cout<<"\nbuff:"<<buff<<endl;//最后一次读的内容
infile.close();
outfile.close();
}