[ifstream] lecture de fichier : Detection de int et d'un char sur une même
Coucou tous le monde,
Je fais fasse a un problème enfantin que je ne sais pas comment résoudre.
Lors de ma lecture de fichier, je lit des lignes d'entier, celle-ci peut être suivie d'un caractère préalablement définis.
fichier.txt
Code:
1 2 3 4 5 6
| 5 //taille ligne, taille colonne
10 20 30 40 50
10 20 f
30 40 50 10 20
f
5 20 f |
Lors ma lecture sert a initialiser une matrice, si dans mon cas f est détecter, alors je dois remplir le reste de ma ligne par 1000. Malheureusement je n'arrive pas a effectuer correctement cette opération.
Principalement sur la détection.
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
| ifstream sourceFile (FICHIERTEXTE)
if (sourceFile.is_open())
{
int taille= 0;
sourceFile >> taille;
maMatrice.creation(taille); //creation de ma matrice
int readBuf; //Buffer de lecture
for (int lig=0; lig<nbPersonnes; lig++)
{
for (int col=0; col<nbPersonnes; col++)
{
sourceFile >> readBuf ;
//l'idee serait de faire une verification du caratère
if (readBufChar == (int)'f' || readBuf == (int)'F') //cette condition ne marche pas mais c'est pour donner une idee
{
maMatrice.SetCase_matriceVal(lig,col,readBuf);
int newLig=col;
for (int newLig; newLig<nbPersonnes; newLig++)
{
maMatrice.SetCase_matriceVal(lig,newLig,MMAX); // on remplace f et les case qui suivent sur la même ligne par MMAX (valeur maximal possible)
}
col = newLig;
}
else
{
maMatrice.SetCase_matriceVal(lig,col,readBuf);
}
}
}
} |
Pour avoir un resultat comme cella :
maMatrice
Code:
1 2 3 4 5 6
|
10 20 30 40 50
10 20 1000 1000 1000
30 40 50 10 20
1000 1000 1000 1000 1000
5 20 1000 1000 1000 |
Merci pour votre aide.
Cordiallement