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