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 :

Convertir un (char *) en (const char *) dans C++


Sujet :

C++

  1. #1
    Membre confirmé Avatar de anas.eh
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Par défaut Convertir un (char *) en (const char *) dans C++
    Comment je vais faire pour convertir un (char *) en (const char *) dans C++ ?

    MErci,

  2. #2
    Membre expérimenté Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    satic_cast<const char*>( ton char * )
    Normalement ça suffit.

  3. #3
    Membre confirmé Avatar de anas.eh
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Par défaut
    Il n'a pas reconnu static_cast, dois-je faire un #include ?

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    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 288
    Billets dans le blog
    2
    Par défaut
    static_cast est un mot-clé du standard c++. Si ton compilateur ne le reconnais pas, ça signifie que tu ne compiles pas en c++.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Je me demande si l'erreur n'est pas plus bête que ça.

    Si anas.eh a fait un copier-coller du code de kujara, en oubliant de rajouter le t à satic_cast, il aura forcément une erreur. Mais par contre en revenant au forum, il aura bien écrit static_cast parce que c'est ce qu'il a crû lire.

    Oui, non ? Sinon, c'est qu'il ne compile effectivement pas en C++.

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ou alors il a fait un copier coller, croyant lire static_cast, et n'a pas bien regardé les messages d'erreur... De retour sur le forum, il a écrit "static_cast" car c'est ce qu'il a toujours pensé.

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    De plus, le static_cast n'est même pas nécessaire si tu passes par une variable intermédiaire: Le cast est implicite.
    Code C++ : 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
    void Fonction(char *sz)
    {
    	cout << "non-const : " << c << endl;
    }
     
    void Fonction(char const * scz)
    {
    	cout << "const : " << c << endl;
    }
     
    void Test()
    {
    	char * sz1 = "abc";
     
    	Fonction(sz1); //Appelle la version non-const
    	Fonction(static_cast< char const * >(sz1)); //appelle la version const
     
    	char const * scz1 = sz1;
    	Fonction(scz1); //Appelle la version const
    }
    (non-testé)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre confirmé Avatar de anas.eh
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Par défaut
    Citation Envoyé par poukill Voir le message
    Ou alors il a fait un copier coller, croyant lire static_cast, et n'a pas bien regardé les messages d'erreur... De retour sur le forum, il a écrit "static_cast" car c'est ce qu'il a toujours pensé.
    Exactement, j'ai copier coller en ayant dans la tête static_cast

  9. #9
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    De toute manière il n'y a pas besoin de faire de static_cast, c'est automatique (et heureusement)...

    Sinon, quand vous recevez un A* il vous faudrait faire un (static_cast<const A*>(ptr)) pour appeler une fonction constante !

  10. #10
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    nicroman : Je pense qu'il est ici question de forcer l'appel à la fonction constante alors qu'une fonction non-constante existe...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre confirmé Avatar de anas.eh
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Par défaut
    Merci, c'est résolu .

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 03/09/2009, 03h06
  2. Réponses: 3
    Dernier message: 18/06/2009, 18h30
  3. Réponses: 1
    Dernier message: 28/03/2009, 18h23
  4. convertir un ansistring en const char*
    Par Freud44 dans le forum Débuter
    Réponses: 13
    Dernier message: 13/11/2008, 17h59
  5. Convertir un "char" en "CONST char"
    Par N3odyme dans le forum C
    Réponses: 3
    Dernier message: 17/08/2006, 19h48

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