Lecture de fichier : Probleme avec les string
En lisant un fichier, je recupere les lignes par getline(fichier, string).
Mais le probleme est le resultat: On dirait que pour la premiere boucle, les strings decalent le reste d'un cran. Je ne vois pas comment l 'expliquer.
Peut etre est ce un probleme de buffer, mais je ne suis pas du tout familier avec cela.
voici un morceau du code:
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
|
specfile.clear();
specfile.seekg(0); //On remet le marqueur en début de fichier
for (j=0;j<6;++j)
{
getline(specfile,temp);
cout << "1:" << temp << endl;
getline(specfile,temp);
cout << "2:" << temp << endl;
if (temp!="NUL")
{
for (i=0;i<Nblines[j];++i)
{
specfile >> SpUser[j][i][0];
specfile >> SpUser[j][i][1];
}
if (Nblines[j]!=lines)
{
for (i=Nblines[j];i<lines;++i)
{
SpUser[j][i][0]=SpUser[j][Nblines[j]-1][0];
SpUser[j][i][1]=SpUser[j][Nblines[j]-1][1];
}
}
}
else //Spectre totalement nul
{
for (i=0;i<lines;++i)
{
SpUser[j][i][0]=SpUser[j][i][1]=0;
}
}
getline(specfile,temp);
cout << "3:" << temp << endl;
}
specfile.close(); |
En regardant les affichages (1, 2 et 3)
On s apercoit que 1 et 2 sont corrects ( apres verification) mais c au 3
que tout est decalé d'un cran.
Pour le reste de la boucle, ce qui devrait commencer a 1 commence a 2.
Si vous desirez le fichier d'entree et le code entier pour tester la routine, il n'est pas tres long car il est separe du projet actuel.
Merci