Pues es raro que no te funcione mi código porque a mi si me funciona, puede que el error esté en otro sitio.
Mi código completo es este:
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ofstream outputfile;
outputfile.open("file1",ios::out);
ifstream readfile;
readfile.open("file2",ios::in);
while(readfile.good()){
char writebuffer=readfile.get();
if(readfile.good())outputfile.put(writebuffer);
}
readfile.close();
outputfile.close();
}
Tenías razón sobre lo del read y write, si que desplazan.
Otra manera que me funciona es esta:
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ofstream outputfile;
outputfile.open("file1",ios::out);
ifstream readfile;
readfile.open("file2",ios::in);
char writebuffer;
while(readfile.read(&writebuffer,1)){
if(readfile.good())outputfile.write(&writebuffer,1);
}
readfile.close();
outputfile.close();
}