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:
2°) je veux mettre pour chaque ligne où le signe # n'apparait pas:
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
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"
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
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(); }
4°) le problème est en pièce jointe:
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; } }
==> 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![]()
Partager