Bonjour à tous,
Je veux faire un code simple qui enregistre le contenu d'un fichier texte dans un tableau de structure. Ce fichier a une quinzaine de lignes, chacune sous la forme Nom, Prenom, (tabulation), caractère pour le poste, suivis de deux flottants. (Par exemple : Tremblay Alain A 35.0 35.5). Lorsque j’affiche le tableau on dirait que tout se passe bien, seulement le programme affiche plein de caractères entre le dernier nom et le « Au revoir! » de fin, comme ça :
1.35632e-019 1.75442e-019
o 1.84946e+031 3.03345e+032 … sur une dizaine de ligne environ.
Voici le code:
J’ai essayé sans allocation dynamique de mémoire (sans new[]) mais le drôle de code est encore là mais change de forme, ça devient surtout des zéros… J’ai regardé sur plusieurs forum en français et en anglais mais je ne trouve pas de problème similaire, si vous voyez ce qui bloque ou connaissez un sujet de forum semblable je prendrais volontier l'info ou le lien
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 #include <iostream> #include <fstream> #include <string> using namespace std; struct Employe { // Structure employé string nom; char poste; float heures, salHor; }; int compter (int n){ string lignes; ifstream fichier1 ("Employes.dat"); while (getline(fichier1, lignes)) n++; fichier1.close(); return n; } int main () { int nbEmp=0; nbEmp=compter(nbEmp); Employe *ptrTabEmploye; //Creer nouveau tableau ptrTabEmploye = new Employe [nbEmp]; ifstream fichier ("Employes.dat"); //Ouverture du fichier if (fichier) { for (int i =0; i<nbEmp; i++) //Met les données dans le tableau { getline(fichier, ptrTabEmploye[i].nom, '\t'); fichier >> &ptrTabEmploye[i].poste; fichier >> ptrTabEmploye[i].heures; fichier >> ptrTabEmploye[i].salHor; } } else { cout << "ERREUR D'OUVERTURE" << endl; } for (int i=0; i<nbEmp; i++) { cout << ptrTabEmploye[i].nom <<" " <<ptrTabEmploye[i].poste <<" " <<ptrTabEmploye[i].heures <<" " << ptrTabEmploye[i].salHor << "\n"<<endl; //Test } delete [] ptrTabEmploye; cout << "\nAu revoir!"<<endl; return 0; }![]()
Merci encore et bonne journée!
Partager