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 :

erreur dans la lecture d'un fichier


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut erreur dans la lecture d'un fichier
    Bonjour tous,

    j'ai un problème avec la lecture d'un fichier, je n'obtient pas le resultat souhaité.

    1°) voici mon fichier texte que je lis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # bibi 1
    12e10 5e-9
    5e5 4.5e-10
    2e7 1e-8
    # bibi 2
    12e10 5e-9
    5e5 4.5e-10
    2e7 1e-8
    2°) je veux mettre pour chaque ligne où le signe # n'apparait pas:
    le 1er nombre dans un vector et le 2nd dans un autre.
    Ensuite je range chaque groupe dans un autre vecteur:

    remarque: la fonction "decoupeChaqueMotLine" sert à découper chaque ligne par mot et à ranger tout les mots dans un vector "bbb"
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
            int ZZZ=0;
            string aaa;
            vector <string> bbb;
            vector <double> vector1;
            vector <double> vector2;
            vector1.clear();
            vector2.clear();
            string monFichier = "bibi.txt";
            ifstream grandeurFile(monFichier.c_str(), ios::in); 
            while (!grandeurFile.eof())
            {
                bbb.clear();
                aaa.erase();
                getline(grandeurFile,aaa);
                decoupeChaqueMotLine(aaa,bbb);
                if (bbb[0]=="#" || ZZZ==1)
                {
                    ZZZ=0;
                    vector1.clear();
                    vector2.clear();
                    while ( ZZZ==0 || !grandeurFile.eof() )
                    {
                        aaa.erase();
                        getline(grandeurFile,aaa);
                        bbb.clear();
                        decoupeChaqueMotLine(aaa,bbb);
                        if (bbb[0]=="#")
                        {
                            ZZZ=1;
                        }
                        else
                        {
                            vector1.push_back( atof(bbb[0].c_str()) );
                            vector2.push_back( atof(bbb[1].c_str()) );
                        }
                    }
                    tableau2D_n1.push_back( vector1 );
                    tableau2D_n2.push_back( vector2 );
                }
                else 
                {
                }
            }
            grandeurFile.close();
        }
    3°) voici ce que j'ai demandé d'afficher pour vérifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (int i=0;i<tableau2D_n1.size();i++)
        {
        for (int k=0;k<tableau2D_n2[i].size();k++)
        {
            cout << "NUMBER NUMBER NUMBER " << i <<" " << k << " "<< tableau2D_n1[i][k]<< endl;
            cout << "BIBI BIBI BIBI " << i <<" " << k << " "<< tableau2D_n2[i][k] << endl;
        }
        }
    4°) le problème est en pièce jointe:

    ==> on retrouve bien tout les nombres qu'il y avait dans le fichier texte mais les indices sont faux:

    les 3premieres lignes devraient avoir l'indice i=0
    les 3autres lignes devraient avoir l'indice i=1

    ==> or dans mon cas il y a deux zero qui apparaissent et je ne voit pas pourquoi et en plus tous mes chiffres sont dans la ligne "i" =1


    pourriez vous me dire s'il vous plait où est mon erreur dans ce programme?
    ==> remarque: je ne cherche pas à modifier ou améliorer le programme mais juste à trouver l'erreur d'implementation



    merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    j'ai trouvé mon erreur c'est dans le 2eme while,

    il faut remplacer le || par &&

    merci quand meme

    A+

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

Discussions similaires

  1. Erreur dans la convertion d'un fichier .JPG en .BMP
    Par Duan dans le forum Débuter
    Réponses: 1
    Dernier message: 12/05/2009, 04h51
  2. Erreur dans la lecture dans fichier M-file
    Par Pedrozito dans le forum MATLAB
    Réponses: 7
    Dernier message: 22/05/2008, 16h16
  3. Erreur dans la lecture d'un blob text
    Par colorid dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/11/2007, 23h25
  4. Erreur à la lecture d'un fichier
    Par sebduth dans le forum Fortran
    Réponses: 3
    Dernier message: 26/08/2005, 16h30

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