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

SL & STL C++ Discussion :

Repétition lecture formaté ifstream.


Sujet :

SL & STL C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Repétition lecture formaté ifstream.
    Bonjour,

    j'ai un problème relativement ennuyeux auquel je ne trouve pas de solution,
    Je lit un fichier formaté avec ifstream, mais la dernière ligne est lut 2 fois

    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
    void PiocheZombie::initPioche()
    {
        string nom;
        int vie;
        int atk;
     
        ifstream f("zombies.txt");
     
        while (!f.eof())
        {
            f >> nom >> vie >> atk;
            Zombie z(nom,vie,atk);
            zombies.push_back(z);
            cout << "ajouter : " << nom << " " << vie << " " << atk << endl;
        }
        f.close();
    }
    et le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Smoker 10 15
    Boomer 20 10
    Tank 30 30
    Coureur 10 10
    J'espère que vous pourrez résoudre mon problème.

    Hugo

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    On n'utilise pas eof comme condition de sortie d'une boucle... le pourquoi du comment et la solution ici :
    http://cpp.developpez.com/faq/cpp/in...s#FICHIERS_eof
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse,
    du coup j'ai préciser le nombre de zombie qu'il y aurait au début du fichier de zombie et je répéte la boucle ce nombre là.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Tu n'avais pas besoin de rajouter le nombre, il suffisait de faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(f >> nom >> vie >> atk)
    {
        ...
    }

  5. #5
    Membre confirmé Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Points : 633
    Points
    633
    Par défaut
    Et même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    f.exception(f.eofbit||f.failbit);
    try { 
      while(true) {
      }
    }catch(const ios_base::failure& e) {
      //gestion/affichage/log/exception claire
      //f.clear();f.ignore(...);
      //ou
      //f.close();
    }
    The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.
    --Wilhelm Stekel

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

Discussions similaires

  1. Lecture format XML
    Par Franck.H dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 31/05/2013, 18h35
  2. [Débutant] Lecture format CSV StreamReader?
    Par Blasphemy dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/02/2013, 23h34
  3. fichier binaire lecture avec ifstream
    Par debutant100 dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2011, 19h43
  4. [std::ifstream] Lecture formatée lente
    Par HanLee dans le forum SL & STL
    Réponses: 15
    Dernier message: 31/05/2009, 01h35
  5. Stream Tokenizer - Lecture formatée
    Par Ceejay dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 02/05/2009, 18h05

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