Comment modifier le contenu dun fichier avec ofstream ou autre?

Comment modifier le contenu dun fichier avec ofstream ou autre? - C++ - Programmation

Marsh Posté le 21-02-2007 à 22:00:14    

Bonsoir,
j'ai un ptit soucis de tres bas niveau :(  
voici mon code :
 
 

Code :
  1. ifstream fichier("LISTE.TXT" );
  2.      while (!fichier.eof ()) //tant qu'on arrive pas a la fin du fichier
  3.      {
  4.      string c
  5.      fichier >> c;
  6.      cout << c;
  7.      if (c=mot_rechercher)            { swap....; }
  8.      }
  9.      fichier.close();


 
 
 
 
 
Mon probleme est le suivant :
 
J'aimerais modifier certaines données a l'interieur de ce fichier.
Comment faire?
Car avec

Code :
  1. iostream fichier(nomfichier,ios::app)

, on ne peut seulement écrire a la fin du fichier, sans pouvoir pour autant modifier le contenu....


Message édité par koideneuf le 24-02-2007 à 14:03:22
Reply

Marsh Posté le 21-02-2007 à 22:00:14   

Reply

Marsh Posté le 22-02-2007 à 00:52:51    

Precision importante, je ne connais pas la position des données a modifier....
Je sais juste par rapport au caractere : je sais quelle donnée a remplacer.
 
J'essaie de trouver la position de cette donnée mais je n'y arrive guère....
 
 
Vraiment besoin de secours la svp

Reply

Marsh Posté le 24-02-2007 à 14:03:36    

personne vraiment?

Reply

Marsh Posté le 02-03-2007 à 17:52:49    

#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main(void)
{
    // Ouvre le fichier de données :
    fstream f("fichier.txt",
        ios_base::in | ios_base::out | ios_base::trunc);
    if (f.is_open())
    {
        // Écrit les données :
        f << 2 << " " <<  45.32 << " " << 6.37 << endl;
        // Replace le pointeur de fichier au début :
        f.seekg(0);
        // Lit les données :
        int i;
        double d, e;
        f >> i >> d >> e;
        cout << "Les données lues sont : " <<
            i << " " << d << " " << e << endl;
        // Ferme le fichier :
        f.close();
    }
    return 0;
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed