Probleme, aide moi svp!

Résolu
lanbook Messages postés 4 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 4 février 2006 - 4 févr. 2006 à 01:10
lanbook Messages postés 4 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 4 février 2006 - 4 févr. 2006 à 22:01
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:
----------------------------------------------------------------------------------------
#include
#include <string.h>
#include <stdlib.h>
typedef char chaine[25];
/******************* 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);
}





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

Lân

6 réponses

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
4 févr. 2006 à 20:48
Il faut que tu définisse le destructeur de ta classe personne.
<hr size="2" width="100%">class personne
{
private:
chaine nom, prenom, adr, CP, ville;
public:
personne();
~personne(){};
void saisir();
void aff();
};
<hr size="2" width="100%">
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
3
cs_GEDEON Messages postés 13 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 25 février 2006
4 févr. 2006 à 02:05
Lorsque tu quitte... il faut que tu quitte réellement !!!!

a la fin inscrit plutot :

case 1 : p.saisir(); break;
case 2 : p.aff(); break;
case 0 :
{
cout << "\n ---------------- FIN --------------\n";
system.exit(0);
}
default : cout << "\n ---------------- Error-------------\n";break;

A la +

Steve
0
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
4 févr. 2006 à 10:44
Pas besoin de system.exit(0) normalement.
Il doit quitter la fonction main des qu'il quitte le do...while puisqu'il n'y a rien derriere.

Tu peux nous écrire l'erreur qu'il te met?

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
0
lanbook Messages postés 4 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 4 février 2006
4 févr. 2006 à 13:29
L'ereur :
---------------------------------------------------------------------------------------------------------
Lân
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lanbook Messages postés 4 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 4 février 2006
4 févr. 2006 à 18:30
j'ai une petite faute:
typedef char chaine[25]; => typedef char chaine[30];
mais bon, ce n'est pas là, le problème, j'ai toujours le message d'erreur
Lân
0
lanbook Messages postés 4 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 4 février 2006
4 févr. 2006 à 22:01
Merci beaucoup julienbj
Lân
0