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 :

Positionner un pointeur de fichier en BOF apres avoir atteint EOF


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut Positionner un pointeur de fichier en BOF apres avoir atteint EOF
    J'ai cherche un peu partout mais je n'ai pas trouve de reponses a mon probleme.
    Je cherche a parcourir un fichier de la premiere ligne a la derniere et ce un certain de nombre de fois.
    Le probleme c'est qu'une fois atteint la fin du fichier, je ne parviens pas a me repositionner sur au debut. En effet, une fois atteinte (et probablement depassee) la fin de fichier, le pointeur prend la valeur -1. Ensuite impossible de se repositionner au debut du fichier.

    J'imagine qu'en fermant et ouvrant le fichier une 2ieme fois, ca pourrait resoudre mon probleme. Probablement aussi pourrais je utiliser un buffer pour lire une fois le fichier et ensuite parcourir ce buffer a loisir.
    Mais avant de passer a ces solutions, quelqu'un peut il m'expliquer pourquoi ce que j'ai fait ne fonctionne pas.
    D'avance merci de me permettre de mourir moins bete!

    Voici le code :
    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
    #include <cstdlib>
    #include <string>
    #include <fstream>
    #include <iostream>
     
    using namespace std;
     
    int main(int argc, char *argv[])
    {
    string line1, line2;
    ifstream file1, file2;
     
    // Open Files
    file1.open( argv[1], ios::binary);
    file2.open( argv[2], ios::binary);
    // While Not EOF file1
    while (! file1.eof() )
    {
      getline (file1,line1);
      file2.seekg( 0, ios::beg);
      //Better than test EOF ???
      while( getline( file2, line2) )
      {
        if (line1 == line2)
        {
          cout << line1 << endl;
        }
      }
    }
    file1.close();
    file2.close();
    return EXIT_SUCCESS;
    }
    PS: Desole, s'il manque des accents, mais j'utilise un clavier QWERTY.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu as fait un clear() pour effacer les "erreurs" de lecture ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Par défaut
    Je n'en faisais pas.
    Effectivement ca fonctionne maintenant. Et je viens de trouver 1 ligne dans un tutoriel sur la fonction clear . C'est toujours plus facile de trouver quand on sait ou chercher.

    Merci beaucoup Miles!

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Juste une remarque : eof() n'est pas à utiliser pour tester la fin de lecture dans une boucle (cf. la FAQ). Tu as un code correct pour la lecture de file2, tu devrais savoir comment corriger pour file1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fichiers de données après avoir utilisé wdmodfic
    Par wd_newbie dans le forum WinDev
    Réponses: 0
    Dernier message: 04/08/2013, 09h43
  2. Réponses: 5
    Dernier message: 21/11/2005, 01h40
  3. [swig] python->C->python, pointeur de fichier
    Par PyBio dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 10/11/2005, 15h50
  4. [Servlet] Fichier xls protégé apres envoi au client
    Par romdelf dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 03/10/2005, 16h41
  5. Réponses: 4
    Dernier message: 19/03/2004, 11h48

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