Bonjour,
Je voudrais modifier un fichier texte, en remplaçant certaines des lignes contenues dans ce fichier.
J'arrive à écrire des lignes en fin de fichier, en ouvrant le fichier par :
Par contre, lorsque j'utilise le code suivant, le contenu initial du fichier est supprimé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::ofstream fichier(fichierSignet, std::ios::out | std::ios::app);
(i est incrémenté par une boucle for, et 4*i+3 correspond au numéro de la ligne que je veux remplacer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 std::ofstream fichier(fichierSignet, std::ios::out | std::ios::ate); if (fichier) { fichier.clear(); fichier.seekp(4*i+3, ios::beg); fichier<<"monTexte"<<std::endl; fichier.close(); }
J'ai essayé aussi :
C'est le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 std::ofstream fichier(fichierSignet, std::ios::out | std::ios::ate); if (fichier) { fichier.close(); }
A part le problème de l'éffacement du fichier, je pense que mon code ne fait qu'ajouter du texte au lieu de le remplacer, et que 4*i+3 ne correspond pas à une ligne, mais à un caractère.
Je verrais une fois que le problème sera résolu comment faire pour modifier une ligne précise.
Merci d'avance
(Mon projet est sous visual studio 2005, avec les MFC)
Partager