Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1398 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  conversion double -> const char*

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

conversion double -> const char*

n°1670304
Xocs
Posté le 13-01-2008 à 02:41:09  profilanswer
 

Bonjour ! :hello:
 
 
J'ai besoin dans un programme de convertir un nombre que j'ai en "double" en un "const char*" car il faut que je concatène plusieurs double.
J'essaie donc de faire une boucle qui avant chaque concaténation va transformer le double en un const char* mais je n'y arrive pas.
 
J'ai essayé avec  "sprintf(pulstemp2, "%f", pulstemp);" mais apparemment ça ne convertit qu'en char et le compilateur me donne l'erreur suivante : invalid conversion from ‘char’ to ‘char*’
 
 
Y'aurait-il une bonne âme qui pourrait m'offrir un petit coup de pouce ?
 
Merci beaucoup par avance :)

mood
Publicité
Posté le 13-01-2008 à 02:41:09  profilanswer
 

n°1670305
Elmoricq
Modérateur
Posté le 13-01-2008 à 02:56:43  profilanswer
 

Zieute du côté de ostringstream : http://cplusplus.com/reference/iostream/ostringstream/
 
Il te suffit de définir un ostringstream et d'utiliser l'opérateur <<.
La propriété str te permet d'obtenir le const char* que tu veux.
 
Essaie de raisonner d'abord en C++ plutôt qu'en C : sprintf() c'est effectivement irremplaçable dans certains cas particuliers, mais dans la majorité des cas, le C++ fournit des classes bien plus pratiques et moins embêtantes à utiliser (je pense surtout à la gestion mémoire).

n°1670307
Xocs
Posté le 13-01-2008 à 04:00:06  profilanswer
 

Elmoricq a écrit :

Zieute du côté de ostringstream : http://cplusplus.com/reference/iostream/ostringstream/
 
Il te suffit de définir un ostringstream et d'utiliser l'opérateur <<.
La propriété str te permet d'obtenir le const char* que tu veux.
 
Essaie de raisonner d'abord en C++ plutôt qu'en C : sprintf() c'est effectivement irremplaçable dans certains cas particuliers, mais dans la majorité des cas, le C++ fournit des classes bien plus pratiques et moins embêtantes à utiliser (je pense surtout à la gestion mémoire).


 
 
Merci, je vais regarder ça :)

n°1670308
IrmatDen
Posté le 13-01-2008 à 04:37:41  profilanswer
 

Salut,
 
Tu peux aussi jeter un oeil du côté de boost::lexical_cast (le 2nd exemple correspondant à ce que tu cherches).

n°1670309
Xocs
Posté le 13-01-2008 à 07:52:08  profilanswer
 

Je dois être bête, mais je ne comprends pas le fonctionnement de ces exemples.
______________________________________________
void log_message(const std::string & );
 
void log_errno(int yoko)
{
    log_message("Error " + boost::lexical_cast<std::string>(yoko) + ": " + strerror(yoko));
}
______________________________________________
 
Je suis incapable de faire le lien entre l'entrée (le int yoko on dorait ?) et la sortie (???)
 

n°1670340
IrmatDen
Posté le 13-01-2008 à 13:01:10  profilanswer
 

Le type de la sortie est l'argument du template. L'entrée est en effet int yoko. Le résultat de l'expression

Code :
  1. boost::lexical_cast<std::string>(yoko)


est donc une string contenant yoko en littéral. Tu n'as qu'à remplacer 'yoko' par ton double, et c'est bon. Si l'utilisation d'un char* est vraiment indispensable, tu n'as plus qu'à appeller std::string::c_str() sur l'objet résultant.


Message édité par IrmatDen le 13-01-2008 à 18:52:11
n°1670413
Xocs
Posté le 13-01-2008 à 17:37:50  profilanswer
 

Je vais essayer ça quand j'aurai mon programme sous la main :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  conversion double -> const char*

 

Sujets relatifs
Conversion string[RESOLU] Conversion au format Coplat: "à plat"
Problème de conversionsurcharges const, non const, et optims du compilo
question bete sur const Type &delims avec des double quotes
Besoin d'aide double cliqueconversion de long[] en byte[] c urgent svp-PDU - SMS - Reception sms
[Résolu] ][Java] Conversion d'une chaîne HTML en Unicode 
Plus de sujets relatifs à : conversion double -> const char*


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR