Bonjour,
J'ai un problème avec une sauvegarde de données dans un fichier texte.
J'ai créé une fonction "sauvegarder" pour écrire les données dans un fichier texte. De façon à pouvoir trouver la fin du fichier (ne pouvant pas utiliser eof() ), j'ai introduit un entier n qui compte le nombre d'éléments présents dans le tableau. Cependant, je ne vois pas comment mettre à jour cet entier (c'est à dire l'effacer et le remplacer par "n + nouveau n".
Voici le code auquel j'ai pensé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
void Tableau::sauvegarder(string nom_fichier) const{
       fstream fichier(nom_fichier.c_str(), ios::in | ios::out | ios::ate); 
     int j=0; 
     if(fichier) {
                map<Personne,string>::const_iterator it;
 
 
                for ( it=M.begin() ; it != M.end(); it++ ) {
                    j=j+1;
                    }
 
 
                for ( it=M.begin() ; it != M.end(); it++ ) {
                    fichier << (*it).first;
                    fichier << (*it).second << endl;
                    }
 
                 fichier.seekp(0,ios::beg); //repositionnement du curseur
                 int entier1;
                  entier1 = entier1 + j;
                fichier << entier1 << endl;
                 fichier >> entier1 ;  
                                 }
     else 
          cerr << "Impossible de sauvegarder les donnees dans le fichier ! " << endl;
}
Pour info : M est une map et Tableau est une classe
Comment faire pour mettre à jour cet entier et ainsi pouvoir copier des données à la suite du fichier et les récupérer sans problème ?

Merci d'avance