// 3.3: File stream (copia)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
char namefin[256], namefout[256];
cout << "Inserire i file di origine e destinazione:\n";
cin.getline(namefin, 256);
cin.getline(namefout, 256);
// inizializza due oggetti, uno ifstream e uno ofstream
// utilizzando i nomi dei file appena ottenuti
ifstream fin(namefin, ios::binary);
ofstream fout(namefout, ios::binary);
if (!fin || !fout) {
cerr << "Impossibile aprire uno o entrambi i file\n";
return -1;
}
char tmpbuffer[512];
while(!fin.eof()) {
fin.read(tmpbuffer, 512); // legge al piu' 512 bytes
fout.write(tmpbuffer, fin.gcount()); // scrive tanti bytes quanti ne abbiamo letti
}
}