Ho scritto un codice che analizzando due file binari, se un 'parametro' del primo file viene trovato nel secondo deve creare un terzo file avente il nome del parametro individuato e scrivervi altri valori relativi alla struttura in cui è racchiuso questo paramtero nel secondo file.

Non ho avuto problemi a far creare il file, utilizzando questo codice:

codice:
char* NomeFile=temp.cognome;

fstream file2;
file2.open(NomeFile,ios::in|ios::out|ios::binary|ios::ate);
if (!file2)
file2.open(NomeFile,ios::out|ios::binary|ios::trunc);
Ho però riscontrato che dopo la creazione sul file non viene scritto nulla, nonostante le istruzioni:

codice:
for(int n=1;n<inseriti;n++){
             file2.write((char*) &*PuntaP1[n]->cognome,sizeof(char[20]));
             cout<<"Inserisco "<<PuntaP1[n]->cognome<<endl;
             system("pause");
             file2.write((char*) &*PuntaP1[n]->nome,sizeof(char[20]));
             cout<<"Inserisco "<<PuntaP1[n]->nome<<endl;
             file2.write((char*) &PuntaP1[n]->dataN.giorno,sizeof(int));
             cout<<"Inserisco "<<PuntaP1[n]->dataN.giorno<<endl;
             file2.write((char*) &PuntaP1[n]->dataN.mese,sizeof(int));
             cout<<"Inserisco "<<PuntaP1[n]->dataN.mese<<endl;
             file2.write((char*) &PuntaP1[n]->dataN.anno,sizeof(int));
             cout<<"Inserisco "<<PuntaP1[n]->dataN.anno<<endl;
     }
lavorino correttamente. Ho però verificato che se chiudo il programma e lo rieseguo senza cancellare i file creati dalla precedente esecuzione, tutti i valori vengono correttamente scritti su di esso.

Come posso risolvere questo problema? Ovvero come posso far in modo che nella stessa esecuzione il programma crei il file e vi scriva sopra correttamente.

Grazie mille a tutti e buona domenica ;-)