Ho il seguente codice e funziona piuttosto bene (a parte il fatto che è piuttosto lento, ma non mi interessa molto di questo). Non sembra intuitivo che questo scriva l'intero contenuto del file in uscita.Che cosa fa effettivamente ifstream :: rdbuf()?
// Returns 1 if failed and 0 if successful
int WriteFileContentsToNewFile(string inFilename, string outFilename)
{
ifstream infile(inFilename.c_str(), ios::binary);
ofstream outfile(outFilename.c_str(), ios::binary);
if(infile.is_open() && outfile.is_open() && infile.good() && outfile.good())
{
outfile << infile.rdbuf();
outfile.close();
infile.close();
}
else
return 1;
return 0;
}
Qualche idea?
Vorrei aggiungere che le chiamate esplicite a 'close()' non sono necessarie. I distruttori farebbero lo stesso comunque. E questo risparmia alcune linee. ;) –