Bonjour, je suis actuellement en BTS IG et j'ai un petit souci dans mon code qui doit charger un tableau à partir d'un fichier. Je le link.
Ma déclaration
J'ai penser à appeler ma procédure dans le CDialog::OnInitDialog();
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 #include <iostream.h> // J'inclue #include "stdafx.h" #include "Procedurale_gestion_voiture_VC.h" #include "Procedurale_gestion_voiture_VCDlg.h" #include <fstream.h> typedef struct // Structure Svoiture. { int Numero_voiture; char Marques_voiture[10]; char Modeles_voiture[10]; int Types_voiture; // 0 pour citadine et 1 pour sportive. int Louer_voiture; // 0 pour libre et 1 pour louer. int Prix_voiture; }SVoiture; SVoiture Voiture; SVoiture TVoiture[500];
Et voici la procédure qui vérifie la présence du fichier et qui charge le tableau si celui ci est présent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BOOL CProcedurale_gestion_voiture_VCDlg::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon CProcedurale_gestion_voiture_VCDlg::Cprocedure_charger_tableau_voiture(); return TRUE;
J'ai donc deux problèmes.
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 void CProcedurale_gestion_voiture_VCDlg::Cprocedure_charger_tableau_voiture() // Charge le fichier Fvoiture { ifstream FVoiture ("FVoiture.txt"); if (! FVoiture) { //l'ouverture a échoué MessageBox("Le programme va maintenant s'arreter.", "Fermeture de session...", MB_OK); // REPERE 1 } else { int I = 1; FVoiture >> Voiture.Numero_voiture >> Voiture.Modeles_voiture >> Voiture.Types_voiture >> Voiture.Louer_voiture >> Voiture.Prix_voiture; // REPERE 2 while (FVoiture.eof()) { TVoiture[I].Numero_voiture = Voiture.Numero_voiture; strcpy(TVoiture[I].Marques_voiture , Voiture.Marques_voiture); // REPERE 3 strcpy(TVoiture[I].Modeles_voiture , Voiture.Modeles_voiture); TVoiture[I].Types_voiture = Voiture.Types_voiture; TVoiture[I].Louer_voiture = Voiture.Louer_voiture; TVoiture[I].Prix_voiture = Voiture.Prix_voiture; FVoiture >> Voiture.Numero_voiture >> Voiture.Modeles_voiture >> Voiture.Types_voiture >> Voiture.Louer_voiture >> Voiture.Prix_voiture; I = I + 1; } FVoiture.close(); REPERE 4 } }
J'ai ajouter des reperes qui m'ont permis de comprendre se que faisait mon programmes. Je les ai mis sous forme de commentaire pour pas ajouter trop d'information.
Lorsque que je n'ai pas de fichier à l'emplacement requis, le programme me crée le fichier (Alors qu'il est en Ouvrir.Lecture) atteint les REPERES 2 et 4 sans passer par la boucle Alors qu'il devrait m'afficher l'erreur et le REPERE 1.
Lorsque je laisse le fichier dans le repertoire source.
Il plante sur ma boucle While sans fin.
Je n'arrive pas a comprendre mon/mes erreurs. Si quelqu'un peut m'aider ? Merci.
Je laisse aussi le fichier FVoiture si ca peut être utile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1 peugeot hx 0 1 2000 2 peugeot hx 1 0 3000
Partager