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++ Discussion :

Saisir et afficher des donneés -> Message d'erreur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut Saisir et afficher des donneés -> Message d'erreur
    Bonjour, j'ai fait un petit programme en C++ qui permet de saisir et d'affichir des donneés. Le programme marche bien sauf au moment où l'on quitte, il affiche un message d'erreur. Je ne sais pas pourquoi. Répondez moi si vous savez. Merci d'avance.
    et voici le code:
    -------------------------------------------------------------------------------------
    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
    62
    63
    64
    65
    66
    67
    #include <iostream.h>
    #include <string.h>
    #include <stdlib.h>
    typedef char chaine[30];
    /******************* Classe personne ******************/
    class personne{
    private:
     chaine nom, prenom, adr, CP, ville;
    public:
     personne();
     void saisir();
     void aff();
    };
    personne::personne(){
     strset(this->nom,'\0');
     strset(this->prenom,'\0');
     strset(this->adr,'\0');
     strset(this->CP,'\0');
     strset(this->ville,'\0');
    }
    void personne ::saisir(){
     cout <<"\n ----------  SAISIE des infos Personne -----------";
     cout <<"\n -- Nom        : ";
     cin.ignore();
     cin.getline(this->nom,30,'\n');
     
     cout <<"\n -- Prenom     : ";
     cin.getline(this->prenom,30,'\n');
     
     cout <<"\n -- Adresse    : ";
     cin.getline(this->adr,30,'\n');
     
     cout <<"\n -- Code postal: ";
     cin.getline(this->CP,30,'\n');
     
     cout <<"\n -- Ville         : ";
     cin.getline(this->ville,30,'\n');
    }
    void personne ::aff(){
     cout <<"\n ----------  Infos Personne -----------";
     cout <<"\n -- Nom           : "<<this->nom<<endl;
     cout <<"\n -- Prenom       : "<<this->prenom<<endl;
     cout <<"\n -- Adresse      : "<<this->adr<<endl;
     cout <<"\n -- Code postal : "<<this->CP<<endl;
     cout <<"\n -- Ville            : "<<this->ville<<endl;
    }
    /*------------------------------------MAIN-------------------------------------*/
    void main(){
     personne p;
     int choix;
     do{
      cout <<"\n ----------  infos Personne  ---------------------------";
      cout <<"\n --      1 --> Saisi                                             --";
      cout <<"\n --      2 --> Afficher                                         --";
      cout <<"\n --      0 --> Quitter                                          --";
      cout <<"\n ---------------------------------------------------------";
      cout<<"\n\n            Votre choix --> ";
     
      cin>>choix;
      switch (choix){
      case 1 : p.saisir();  break;
      case 2 : p.aff();  break;
      case 0 : cout << "\n ---------------- FIN --------------\n";break;
      default : cout << "\n ---------------- Error-------------\n";break;
      }
     }while (choix !=0);
    }

    ---------------------------------------------------------------------------------------

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu as oublie un detail important: c'est quoi le message d'erreur?

  3. #3
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    En C++ main() doit retourner un int.

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut
    Le message d'erreur est :
    --> Unhandled exception in source.exe: 0xC0000005: Access Violation.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu ne peux pas utiliser un debugger pour localiser plus précisément le problème ?

    Ensuite, tu déclares des tableaux de 25 caractères mais spécifie 30 comme taille max pour la saisie.

    Enfin, les char[] et les en-têtes en .h, c'est caca. Va faire un tour par la FAQ C++.

    Et merci d'éditer ton premier message pour donner un titre plus explicite au sujet.

  6. #6
    Membre averti
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut
    C'est bon, j'ai trouvé la solution, merci de vos participations

  7. #7
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    PS: j'ai l'impression qu'il manque les std::/using namespace std...

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par reggae
    PS: j'ai l'impression qu'il manque les std::/using namespace std...
    Pas besoin, il inclue les en-têtes non standards (ce qui est bien sûr déconseillé -- mais tout est expliqué dans la FAQ).

    C'est bon, j'ai trouvé la solution
    Pense à l'indiquer, pour ceux que ça intéresse

  9. #9
    Membre averti
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut
    J'ai oublié de mettre le destructeur dans la classe personne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class personne{ 
    private: 
     chaine nom, prenom, adr, CP, ville; 
    public: 
     personne(); 
     void saisir(); 
     void aff(); 
     ~personne(){};
    };

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Par défaut
    en quoi ca explike ton erreur??
    il y a tjs un destructeurs par default!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/01/2006, 01h44
  2. Réponses: 3
    Dernier message: 03/01/2006, 21h43
  3. comment afficher des données Access sur Word ??
    Par merlubreizh dans le forum Access
    Réponses: 7
    Dernier message: 16/09/2005, 15h07
  4. comment afficher des données Access sur Excel ??
    Par merlubreizh dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2005, 14h38
  5. [BDE] Afficher des données dans un TDBComboBox
    Par $grm$ dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/09/2004, 10h37

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