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 :

[DEBUTANT]Convertion int vers Char*


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut [DEBUTANT]Convertion int vers Char*
    Y a t il une fonction equivalente à "atoi"
    Transformer un numerique en chaine de caractere ?

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Je ne crois pas qu'il y ait une telle fonction toute prête; tu peux te référer à cet article de la faq C++ pour voir leur méthode et l'adapter à tes besoins.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Le plus facile, c'est, tout simplement l'utilisation de std::*stringstream et de std::string...(istringstream pour la convertion chaine-->n'importe quoi, ostringstream pour n'importe quoi-->chaine)

    Une fois que tu as ta std::string, si, vraiment, tu as besoin d'un char*, tu pourras toujours l'avoir avec la fonction membre c_str() de la classe string...

    Tu trouveras des exemples pour les convertion ==>sur cette page du site<==.

    Nota:
    • Il est vrai qu'on le répète à longueur de journée sur ce forum, mais, honnêtement, en C++, il est beaucoup plus simple d'utiliser la classe std::string pour la gestion de chaines de caractères que de commencer avec des chaines "C style" (tableau de caractères terminés par '\0')
    • les classes string et *stringstream font toutes les deux partie de l'espace de nommage std... les fichiers à inclure pour en profiter sont respectivement <string> et <sstream>
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Ok merci koala01 et IrmatDen, vous m'avez envoyer vers le même type de tutorial, j ai suivi celui de Aurélien Regat-Barrel sur developpez.net.
    En suivant les conseils de koala j'ai fais ma propre function de log qui prend entre une string que je convertie ensuite en char *

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par magnus2005
    Ok merci koala01 et IrmatDen, vous m'avez envoyer vers le même type de tutorial, j ai suivi celui de Aurélien Regat-Barrel sur developpez.net.
    En suivant les conseils de koala j'ai fais ma propre function de log qui prend entre une string que je convertie ensuite en char *
    Mais ma question est: Pourquoi vouloir absolument le convertir en char*

    Pour une fonction log, utilise les std::ofstream pour l'écriture dans un fichier, et ca fonctionne tres bien avec des std::string et meme avec n'importe quel type de base (entier, reel, ...)

    Un code du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    /* fonction log
       @in éventuellement le nom du fichier à utiliser
          les infos à écrire
    le prototype peut donc varier énormément, selon les infos à logguer ;)
    */
    void log(std::string fichier,std::string& chaine, int entier)
    {
        //le seul char* qu'il nous faille, c'est pour le nom du fichier
        //(je n'ai personnellement jamais compris pourquoi, dans ce cas précis,
        // la stl n'avait pas envisagé l'utilisation d'une string :P)
        std::ofstream ofs(fichier.c_str(),std::ios_base::app);
        ofs<<"entier: "<<entier<<" chaine: "<<chaine<<std::endl;
    }
    fonctionnera très bien (nécessite l'inclusion du fichier <fstream>)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    En fait je dois utiliser une fonction qui prend LPSTR en parametre
    et quand je veux passer une "string" le compilateur
    me dit "impossible de convertir". Si j ai bien lu les header de LPSTR est un type de char*.

    Mais j'en conviens que c 'est pas génial.
    Je suis en train de passez un projet VC++6 qui date de 1997 et j'essaie d updater morceau par morceau.
    La je l ai passe sous VISUAL 2005 et j avance pas à pas.
    J'ai 2 soucis principaux :
    1. le code qui assez souvent obsolete (Ex : je suis en train de passer les winsock.h vers winsock2.h)
    2. Et je connais pas la logique de conception du projet.

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

Discussions similaires

  1. String vers Int vers Char
    Par lea436 dans le forum C#
    Réponses: 3
    Dernier message: 14/08/2011, 13h48
  2. CONVERT int vers varchar
    Par Wiwi31 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/02/2011, 09h45
  3. super debutant, converitir int to char
    Par am@123 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/02/2007, 19h53
  4. De int et long vers char*
    Par olivier857 dans le forum C++
    Réponses: 27
    Dernier message: 23/06/2006, 16h23
  5. Réponses: 2
    Dernier message: 24/03/2006, 10h46

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