IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Virtual C++ 6.0


Sujet :

C++/CLI

  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Par d�faut Virtual C++ 6.0
    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
    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];
    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
     
     
     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;
    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
    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 donc deux probl�mes.

    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

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 528
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 528
    Par d�faut
    Je n'ai trop cherch� la logique dans votre programme.
    Bon nombre de choses me d�rangent.

    1 -
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include <iostream.h> // J'inclue 
    #include "stdafx.h"
    Toujours mettre #include "stdafx.h" en premier, toujours, et mettre les includes des en-t�te qui ne change jamais dans le fichier "stdafx.h".
    Cela acc�l�re �norm�ment la compilation et vous �vitera bien des probl�mes qui vous sembleront absconds.

    2 -
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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;
    Ca, c'est du C pas beau, utilisez les structs C++

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct 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;
    };
    3 -
    Beurk, le grand tableau globale, pas dynamique pour un sous.
    Utilisez par exemple sun std::vector qui vous permettra d'avoir une nombre arbitraire d'�l�ment.
    Je ferais de ce vecteur (std::vector) un membre de la classe CProcedurale_gestion_voiture_VCDlg.

    4 -
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    BOOL CProcedurale_gestion_voiture_VCDlg::OnInitDialog()
    {
    ...	
    CProcedurale_gestion_voiture_VCDlg::Cprocedure_charger_tableau_voiture();
    ...
    Quand on n'est dans une m�thode d'une classe, il ne faut pas utiliser le nom de la classe comme s�lecteur de namespace.
    Voici un code bien plus concis, et plus correct en cas de fonction virtuelle.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    BOOL CProcedurale_gestion_voiture_VCDlg::OnInitDialog()
    {
    ...	
             Cprocedure_charger_tableau_voiture();
    ...
    5 -
    Je ne suis pas un adepte des "ifstream". Je pr�f�re les API non portable de Win32.
    Je pense que ce n'est pas votre programme qui cr�� ce fichier.
    C'est peut-�tre le processus de compilation ou de lancement du d�buggeur.
    Pour ma�triser finement la non cr�ation des fichiers, j'utiliserais la fonction "fopen" � la place de "ifstream".

    6 -
    R�servez les majuscules aux constantes et aux MACROS.
    7 -
    8 -
    Le meilleur pour la fin
    Tant que vous �tes en erreur on boucle.
    Google est notre ami � tous :
    http://www.daniweb.com/forums/post155265-18.html

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 7
    Par d�faut
    Merci beaucoup. Bonne continuation.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. virtuals hosts apache
    Par kaiser2003 dans le forum Apache
    R�ponses: 5
    Dernier message: 01/08/2004, 17h18
  2. [tomcat]comment cree un "Virtual Host" avec tomcat
    Par nouaman dans le forum Tomcat et TomEE
    R�ponses: 17
    Dernier message: 04/06/2004, 22h51
  3. D�clenchement Programme sur Virtual Key
    Par Tom-G dans le forum API, COM et SDKs
    R�ponses: 9
    Dernier message: 09/05/2003, 12h58
  4. Virtual-key code
    Par lyrau dans le forum Windows
    R�ponses: 2
    Dernier message: 29/03/2003, 19h22
  5. Abstract VS virtual
    Par LE CHAKAL dans le forum Langage
    R�ponses: 2
    Dernier message: 29/08/2002, 17h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo