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:
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:
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:
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 :ccool: