Mise en forme d'un String^

EaglesEyes Messages postés 33 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 27 février 2008 - 22 nov. 2006 à 09:52
EaglesEyes Messages postés 33 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 27 février 2008 - 23 nov. 2006 à 11:13
Bonjour

Je cherche la méthode C++ équivalente à sprintf en C pour mettre en forme un String^. En gros je veux mettre la valeur hexadécimale d'un variable dans un String^

Merci d'avance

Eagles Eyes

4 réponses

EaglesEyes Messages postés 33 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 27 février 2008
22 nov. 2006 à 10:40
Précision: je cherche a faire ça mais avec un string au lieu d'un char *:

char * cTemp = (char *)calloc(6, sizeof(char));
int iIndice = 0x8000;

while(iIndice <= 0xC000)
{
    sprintf(cTemp, "%04x ", iIndice);
   
   ........etc

    iIndice++;
}

Eagles Eyes
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
22 nov. 2006 à 17:42
Salut,
je te conseil d'utiliser format de boost http://www.boost.org/libs/format/index.html qui est le portage c++ de sprintf

TuRn3r
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
22 nov. 2006 à 20:35
Mais non, ya pas besoin de toute ces librairies a la con.


#include <sstream>

#include


std::ostringstream oss;

oss << int(45);

oss << "  coucou : " << float(10);


std::string machaine;

machaine = oss.str();


std::cout << machaine << std::endl;


Et voila. Si tu veux la valeur hexa, faut utiliser les formatages de la std:
std::cout << std::hex(17) << std::endl;
0
EaglesEyes Messages postés 33 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 27 février 2008
23 nov. 2006 à 11:13
j'utilise finalement cette méthode:

int iChecksum = 0xFF85;
String::Format("{0:X}\n", iChecksum);

j'aimerais qu'elle me retourne uniquement "85" et pas "FF85", pour cela j'ai testé:

int iChecksum = 0xFF85;

String::Format("{0:2X}\n", iChecksum);

et ça me retourne (-2X)

comment puis je faire avec cette méthode ?

Eagles Eyes
0
Rejoignez-nous