Salve.

Io ho un file.txt strutturato nella seguente maniera:
ID (di 5 byte);Flag(1 byte) e altri campi

esempio:
1 ;L;altri campi
2 ;L;altri campi
3 ;L;altri campi

Ora io vorrei creare un metodo che mi effettui la cancellazione logica di un record. Ho pensato di far modificare il "Flag" impostandolo non piu' a "L", ma a "X".

Ho scritto il seguente codice:
codice:
    void CancellazioneLogica(string NomeFile)
    {
     string id,IDcanc,riga; 
     cout << "Inserisci l'ID del record da cancellare" << endl;
     cin >> IDcanc;
     fstream file(NomeFile.c_str(),ios::in | ios::out);
     while(!file.eof())
     {
       getline(file,id,'\0');      
       if (id==IDcanc)
                     {
                      file <<"X";
                      cout << "Cancellazione Logica effettuata "<< endl;
                     }
       getline(file,riga,'\n');
     }
     file.close();               
    }
eseguendo questo codice, e scegliendo un ID da cancellare, presente nel file, il programma va in Loop, pero' non mi scrive sul file il carattere "X".