Re Salut,
J'ai remplacé
fin.seekg(6,ios_base::cur);
par
fin >> c >> c >> c >> c >> c >> c;
c'est pas élégant du tout mais ca permet à la fonction de fonctionner parfaitement sur mon PC!
J'ai aussi rajouté la structure 'MonPoint' pour pouvoir créer des points à coordonnées 'double'.
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
| struct MonPoint
{
double x, y;
};
bool charger(char* nom, vector<MonPoint> &liste, int taille) //taille = 1000 : nombre de lignes du fichier
{
ifstream fin;
fin.open(nom);
//Vérifier que le fichier est ouvert sans problèmes
if(!fin){
cout<<"Probleme a l'ouverture du fichier"<<endl;
return false;
}// Fin if
// Saisie des coords dans les objets Point
double x, y;
char c;
for(int j=0; j<taille; j++){
MonPoint pt;
fin >> c >> c >> c >> c >> c >> c; // C'est pas élégant mais du coup : bool charger( ... ) fonctionne!!
// On prend le X, le Y et le caractère ')' à la fin de chaque ligne j
fin >> x >> y >> c;
cout<<x<<endl<<y<<endl<<c<<endl; //les valeurs de x et y ne sont pas les bonnes. Par contre dans c il y a ')' comme prévu
// On met le X et le Y dans le point j de la liste
pt.x = x;
pt.y = y;
liste.push_back(pt);
cout<<liste[j].x<<endl<<liste[j].y<<endl;//ça me donne des valeurs encore différentes
}// Fin for
// Fermeture du stream
fin.close();
// Valeur retournée par la fonction
return true;
}// Fin charger(...)* |
Pourquoi ça ne marchait pas avant : je ne sais pas!
Pourquoi ça marche maintenant : je ne sais pas non plus!
Mais ca marche : manifestement le fautif est Bon code.
Partager