Bonjour à tous et à toutes !
Bon, premièrement je vous souhaite à tous une joyeux Noël en retard ainsi qu'une bonne année plutôt que prévu
Maintenant passons aux choses sérieuses.. Un problème que je ne comprends pas du tout et j'ai besoin de votre aide !
Pour le cours de C++ de cette année nous devons gérer des clients, des vendeurs, une liste de modèle etc.. Chaque classe disposera d'une liste triée dans laquelle on ajoutera chaque objet (à partir d'un fichier).
Le problème survient lorsque je fais la lecture d'un fichier Modele.csv. J'effectue la lecture du fichier, je créer un objet que j'ajoute dans la liste.
Voici la portion de code correspondante :
(PS : Oh mais quelle horreur ! Des char et char* partout.. ^^ Je sais.. Pourquoi pas des strings ? Car notre professeur nous l'interdit
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 void ChargerListeModele(ListeTriee<Modele> &listemodele) { char nom[100], buffer[100]; int puissance; bool diesel; float prix; char temp[20]; ifstream fichier("Modeles.csv", ios::in); if(fichier) { fichier.getline(buffer, 100, '\n'); // la 1ere ligne du fichier contient le nom des colonnes while(fichier.peek() != EOF) // peek() => prochain caractère { fichier.getline(nom, 100, ';'); fichier.getline(temp, 20, ';'); puissance = atoi(temp); // atoi = string/char* en int fichier.getline(temp, 20, ';'); diesel = atoi(temp); fichier.getline(temp, 20, '\n'); prix = atof(temp); // atof = string/char* en float listemodele.insere(Modele(nom,puissance,diesel,prix)); } fichier.close(); } listemodele.Affiche(); cin.ignore(1024,'\n'); cout<<"Appuyez sur une touche pour revenir au menu"<<endl; cin.get(); })
Avec mes clients, mes employés la liste triée marche parfaitement. Cependant, dès qu'il y a plus d'un objet Modèle dans la liste, la variable Nom de l'objet modèle contient n'importe quoi ! Comme si elle changeait à chaque ajout d'un nouvel objet alors que je n'y touche même pas..
Vous trouverez ici une capture d'écran du problème :
Je précise aussi que sous Windows je n'ai aucun problème. L'ajout s'effectue de façon correcte. Cependant, sous Linux ça ne marche pas.
Cela fait maintenant quelques jours que j'essaye de trouver une solution mais je n'y arrive pas ^^'
Pour les plus curieux, je vous annexe l’entièreté de mon projet.
Merci à tous et bonne soirée ! =)
Partager