Déclarer une chaine de caractères en C++

Résolu
Bonjour,
En exécutant un programme C++, ma chaine de caractère s'affiche d'une façon bizarre, je ne sais pas pourquoi !
Voilà une imprim écran de ma console :
https://www.cjoint.com/?mrkxCY37it
Ma fonction main est la suivante :
#include "compte.h"
#include "string.h"
using namespace std;

void main()
{
	compte c;

	c.init_compte(6001, "khaoula", 2000);
	c.Deposer_argent(3000);
	c.Retirer_argent(100);

	cout<<"votre solde est : " <<c.Consulter_solde()<<endl;
    c.affich();
}


P.S. mon IDE est Microsoft Visual Studio 2005.
Merci de vos réponses :)

infor_ilyes@yahoo.fr

--

La foudre et l'amour laissent les vêtements intacts et le coeur 
en cendre...
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. Pardon, le pointeur est bien initialisé... mais pas les données.
    Ne manquerait-il pas un strcpy dans init_compte ??
    1
    1. Bonjour,

      Les pointeurs non initialisés ont encore frappé ...
      Peux tu nous montrer la définition de ta classe compte et les méthodes init_compte et affich ?
      0
      1. Re,
        compte.cpp :
        #include "compte.h"
        #include "string.h"
        using namespace std;
        
        void compte::init_compte(int n, char *nom, float s)
        {
        	Num_compte = n;
        	Nom_proprietaire = new char[strlen(nom)+1];
        	solde = s;
        }
        
        void compte::affich()
        {
        	cout<<"le numero du compte est : " <<Num_compte<< endl;
        	cout<<"le nom du proprietaire est : " <<Nom_proprietaire<< endl;
        }
        
        void compte::Deposer_argent(float x)
        {
        	solde+=x;
        }
        
        void compte::Retirer_argent(float x)
        {
        	solde-=x;
        }
        
        float compte::Consulter_solde()
        {
        	return solde;
        };


        compte.h :
        #include<iostream>
        
        class compte
        {
        private :
        	int Num_compte;
        	char *Nom_proprietaire;
        	float solde;
        
        public :
        	void affich();
        	void init_compte(int, char *, float);
        	void Deposer_argent(float);
        	void Retirer_argent(float);
        	float Consulter_solde();
        
        };


        :)
        0
        1. Je devrais ajouter cette ligne de commande :
          strcpy(nom,);

          Je mettrais quoi comme deuxième paramètre ?
          Merci :)
          0
          1. strcpy(nom,);
            Tiu n'es pas très bien parti là, mais je suis sûr que tu peux le trouver toi-même.
            Fais bien attention au sens de la recopie dans strcpy
            Dis-toi que tu as un nom passé en paramètre, et un champ de ton objet qui doit recevoir un nom.
            0
            1. Ca y est, je l'ai trouvé, je suis une excellente élève môa :D

              strcpy(Nom_proprietaire,nom);


              Le nom du propriétaire du compte s'affiche correctement :)

              Merci à toi !
              0