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

  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