IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

lecture / �criture dans des fichiers text


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2012
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Par d�faut lecture / �criture dans des fichiers text
    Bonjour,
    j'ai une question � propos de la lecture et �criture dans des fichiers textes.
    Dans le meme code je voulais ecrire et apr�s lire � partir d'un fichier texte, en appelant les fonctions dans l'ordre suivant:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fstream myfile ("file.txt", ios::in | ios::out);
    .
    .
    myfile.open("file.txt", ios::out);
    //operation d'ecriture dans le fichier file.txt
    myfile.close();
    .
    myfile.open("file.txt", ios::in);
    //operation de lecture à partir du fichier file.txt
    myfile.close();
    le soucis est que quand je d�marre la simulation une deuxi�me fois pour r�ecrir dans le meme fichier, le code echoue de r�ouvrir le fichier et son contenu reste le meme que celui d'avant.

    Dois-je ajouter une autre instruction pour que le fichier en question soit reinitialiser a chaque simulation? et si c'est le cas laquelle?

    Merci

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par d�faut
    Il doit par d�faut �crire dans le mode append.

    Mais je ne ma�trise pas trop les flux d'entr�e/sortie...

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Bonjour,

    le constructeur ouvre le fichier. Open �choue si le fichier est d�j� ouvert.
    Pourquoi r�utiliser 3 fois la m�me variable et fichier ? Tu peux te contenter de l'ouvrir une fois en inout et ne le refermer qu'apr�s en avoir termin�.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Hello

    Bousk a raison : tu n'as pas besoin de fermer et de r�-ouvrir le fichier.

    En revanche, il y a une petite subtilit� lorsque tu fais de l'�criture et de la lecture en m�me temps : il faut prendre garde � la position des curseurs de put et de get. Voici un petit programme qui ajoute l'heure courante dans le fichier puis affiche tout son contenu. Tu verras qu'en l'ex�cutant plusieurs fois � la suite, on r�cup�re bien les donn�es pr�c�dentes.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #include <iostream>
    #include <iomanip>
    #include <ctime>
    #include <fstream>
    #include <string>
     
    std::ostream & format_2_l0(std::ostream & iStream)
    {
      return iStream << std::setw(2) << std::setfill('0');
    }
     
    int main(int argc, char* argv[])
    { 
      std::string my_file("file.txt");
      std::fstream file_p(my_file.c_str(), std::ios::in | std::ios::app); // <- Pour ajouter à la fin du contenu
      // std::fstream file_out(my_file, std::ios::in | std::ios::out); // <- Pour écraser le contenu
      if(file_p)
      {
        // Ecrire
        std::time_t now = std::time(0);
        std::tm * tm_now = std::localtime(&now);
        format_2_l0(file_p) << tm_now->tm_hour << "h";
        format_2_l0(file_p) << tm_now->tm_min << " ";
        format_2_l0(file_p) << tm_now->tm_sec << "s";
        file_p << std::endl;
     
        // Lire
        std::string ligne;
        file_p.seekg(0,std::ios::beg);
        while ( std::getline( file_p, ligne ) )
          std::cout << ligne << std::endl;
     
     
        file_p.close();
      }
      return 0;
    }
    Le ligne importante � retenir est celle-ci

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    file_p.seekg(0,std::ios::beg);
    Elle repositionne le curseur de lecture au d�but du fichier avant d'effectuer la lecture.

  5. #5
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2012
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Par d�faut
    Salut, justement l'�criture et la lecture se font au m�me temps, et si j'ouvre le fichier et ne le fermer qu'� la fin, je reccup�re pas les bonne donn�es.

    merci pour vos r�ponses

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par nadir CoCo Voir le message
    Salut, justement l'�criture et la lecture se font au m�me temps, et si j'ouvre le fichier et ne le fermer qu'� la fin, je reccup�re pas les bonne donn�es.
    Si tu fais comme je te montre, tu r�cup�reras la bonne donn�e y compris en ne le fermant qu'une fois � la fin.

  7. #7
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2012
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Par d�faut
    Ok, merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. lecture-�criture dans un fichier text
    Par guefrachi dans le forum VB 6 et ant�rieur
    R�ponses: 12
    Dernier message: 29/07/2010, 20h28
  2. la lecture et l��criture dans des fichiers textes en java
    Par blackhock dans le forum G�n�ral Java
    R�ponses: 2
    Dernier message: 06/05/2009, 17h10
  3. lecture/�criture dans un fichier texte
    Par the watcher dans le forum Delphi
    R�ponses: 23
    Dernier message: 15/05/2007, 10h57
  4. R�ponses: 47
    Dernier message: 28/01/2007, 19h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo