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:
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:
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. :calim2: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
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:
1
2
3 1 peugeot hx 0 1 2000 2 peugeot hx 1 0 3000