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

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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. le père
     
    Pardon, le pointeur est bien initialisé... mais pas les données.
    Ne manquerait-il pas un strcpy dans init_compte ??
    1
  2. le père
     
    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
  3. Utilisateur anonyme
     
    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
  4. Utilisateur anonyme
     
    Je devrais ajouter cette ligne de commande :
    strcpy(nom,);

    Je mettrais quoi comme deuxième paramètre ?
    Merci :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    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. Utilisateur anonyme
       
      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