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 :

problème de lecture depuis un fichier texte


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut problème de lecture depuis un fichier texte
    Bon, dans la série le débutant est parmi vous... nouveau problème... Je fais la boucle ci-dessous :
    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
     
    if(fichier)
    {
    fichier>>nb_q;
    cout<<nb_q<<endl;
    i=0;
    while(i<nb_q) 
    {
    fichier>>type_q;
    cout<<type_q<<endl;
    quiz1.ajout_type(type_q);
    fichier>>nb_items;
    cout<<nb_items <<endl;
    getline( fichier, lecture );
    quiz1.ajout_question(lecture);
    cout<< lecture<<endl;
    lecture.erase();
    j=0;
    while(j<nb_items)
    {
    getline( fichier, lecture );
    cout<< lecture<<endl;
    tempo_rep.push_back(lecture);
    lecture.erase();
    fichier>> val_vera;
    tempo_vera.push_back(val_vera);
    cout<< val_vera<<endl;
    j++;
    }
    Le fichier à lire contient :

    2
    0
    2
    Pourquoi 1 ?
    Pcq 1.1
    1
    Psc 2.2
    0
    1
    2
    Pquoi 2 ?
    Pcq 2.1
    1
    Pcq 2.2
    0
    et mon abruti de programme m'affiche :

    2
    0
    2

    Pourquoi 1 ?
    -1076114632

    -1076114632
    0
    2


    -1076114632

    -1076114632
    Ca part bien, mais... on dirait qu'il lit un saut ed ligne quelque part, ou que fichier "pointe" avec un coup de retard ou d'avance ou je ne sais quoi et que ça décale la lecture du fichier... J'y comprends rien (ça doit être moi l'abruti).

    Si quelqu'un à des idées... mon cerveau bouilloit...

    Marci bacoup,

    Hugo

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par défaut
    Bon je suis pas sûr, mais j'ai jamais vu la fonction "erase" utilisé comme ça sur un string. Et je crois qu'à priori t'as pas besoin d'effacer ta string "lecture", le getline suivant remplacera le contenu directement.

    Fin bref petite suggestion, essaye sans le lecture.erase().

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut
    Déjà essayé et hélas... a marche pas...
    Je vais essayer de recompiler sous win (j'étais sous linux)... qui vivra verra...
    Hugo

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut
    Bon,
    ça plante win également, un peu différemment... (j'ai modifié le fichier lu, mais bon) ça donne :

    1
    0
    2

    Pourquoi ?
    -1
    Pourquoi ?
    -1
    Au lieu de :

    1
    0
    2
    Pourquoi ?
    Pcq1
    1
    Pcq2
    0
    Comprends pô... si quelqu'un a des suggestions... je deviens dingue...

    Merci

    Hugo

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 366
    Par défaut
    Peut-être un espace après le 2 dans ton fichier de texte ? du coup le premier getline récupèrerait la fin de ce qu'il y a après le 2, (d'où la ligne vide), le second getline récupèrerait le "Pourquoi 1 ?", et ensuite tu essayerais de mettre une chaîne de caractère dans un int donnat un résultat qui ne ressemble à rien.

    Suggestion un peu stupide je te l'accorde mais ce genre d'erreurs m'arrive tellement souvent

    Ou alors essayer de faire un getline sur le 2 (au lieu de le récupérer via >>) et afficher le résultat ? Si ca ne donne pas ce que l'on veut c'est peut-être que le flux se trouve juste après la dernière valeur récupérée via >> (donc avant le caractère de nouvelle ligne) et que le getline se contente de ne rien récupérer le premier coup.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    620
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 620
    Par défaut
    Je peux essayer mais c'est pas satisfaisant : ça devrait faire ce qu'on lui dit ces bêtes, pas l'inverse... Je vais voir (mais j'y crois pas).
    Merci de te donner du mal, en tout cas,
    Hugo

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

Discussions similaires

  1. problème de lecture d'un fichier texte
    Par peppena dans le forum Langage
    Réponses: 5
    Dernier message: 25/05/2007, 15h10
  2. Problème de lecture dans un fichier texte.
    Par Mike888 dans le forum C
    Réponses: 3
    Dernier message: 24/05/2007, 11h45
  3. [WIN32]problème de Lecture d'un fichier texte
    Par jesus144 dans le forum Windows
    Réponses: 14
    Dernier message: 23/02/2007, 11h40
  4. [VBnet] Problème de lecture d'un fichier texte.
    Par dibeloni dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 19h12
  5. Réponses: 2
    Dernier message: 28/12/2005, 15h00

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