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é :
Pour info : M est une map et Tableau est une classe
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; }
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
Partager