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

MFC Discussion :

Problème avec strcpy et la console d'affichage


Sujet :

MFC

  1. #1
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut Problème avec strcpy et la console d'affichage
    Bonjour à tous,
    Mon problème me semble quelque peu étrange, je vais donc essayer de l'expliquer clairement.

    Voici la classe que j'ai réalisé pour un jeu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class CJoueur {
     
    private :
    char _Nom[20];
    
    public:
    CJoueur(char *Nom);
    int ObtienNom(char * MonNom);
    };
    
    Et voici la définition des méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Le constructeur
    CJoueur::CJoueur(char *Nom){
    strcpy(_Nom, Nom);
    }
     
    // La fonction qui donne le nom
    int CJoueur::ObtienNom(char * MonNom){
    strcpy(_Nom, MonNom);
    return 0;
    }
    Mon problème est le suivant :
    des que j'utilise le fonction obtienNom(), plus rien ne s'affiche sur la console.
    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
    //Voici le Main :
    #include <iostream.h>
    #include "Joueur.h"
     
    int main(){
     
    CJoueur J("paul");
    char Nom[20];
    
    J.ObtienNom(Nom);
    
    cout << "essai" << endl;
    // rien ne se passe
     
    return 0;
    }
    En cherchant la cause de ce problème j'ai trouvé :
    si je met en commentaires strcpy dans la fonction ObtienNom tout redevient normal, et la console affiche essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int CJoueur::ObtienNom(char * MonNom){
    //strcpy(_Nom, MonNom);
    return 0;
    }
    ?????? (je n'ai aucune erreur ni de warning)

    si quelqu'un comprend ce qui se passe, Merci d'avance!

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    ben ça me semble normal ,en plus ça risque de planter.
    la variable nom dans le main n'est pas initialisée que veux tu que fasse strcpy
    dans ce cas ?

    Ps : pense à utiliser la balise code pour tes messages.

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Epargnes toi ces erreurs et bien d'autres en utilisant std::string (ou équivalent).
    http://c.developpez.com/faq/cpp/?page=strings

  4. #4
    r0d
    r0d est actuellement connecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 265
    Points : 6 686
    Points
    6 686
    Billets dans le blog
    2
    Par défaut
    Au vu du nombre de message dans lesquels nous avons dû le dire, il faudrait créer un smiley du style "n'utilisez pas de char* mais des std::string" (et le même avec CString pour la mfc). Il faudrait même créer une macro pour générer un post qui donne un lien vers la faq. Peut-être même les deux

  5. #5
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut

    Effectivement, j'ai inversé la source et la destination dans strcpy,

    Désolé d'avoir poluée le forum avec ce post stupide,
    J'ai cru que le problème était plus complexe car plus rien ne s'affichait sur la console (!?)

    Merci !

  6. #6
    Membre régulier Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Points : 88
    Points
    88
    Par défaut
    Je suis un peu perdu avec ce nouveau forum,
    Je ne trouve pas le bouton "résolu",

    et au passage je ne trouve pas non plus la recherche sur le forum...?

    Merci!

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    a priori dans le menu outils de la discussion...

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

Discussions similaires

  1. Problème avec la commande stat et son affichage
    Par Sve@r dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 27/08/2014, 00h03
  2. Drôle de problème avec ie9 et ie8 (console.log)
    Par Webselect dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/07/2014, 15h13
  3. problème avec strcpy(prog C sous linux)
    Par khadi8 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/03/2013, 14h06
  4. Problème avec strcpy : mon programme plante
    Par Titi41 dans le forum Débuter
    Réponses: 4
    Dernier message: 06/11/2008, 12h02
  5. Réponses: 11
    Dernier message: 16/12/2003, 19h58

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