Mise en forme d'un String^

Signaler
Messages postés
33
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
27 février 2008
-
Messages postés
33
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
27 février 2008
-
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

Messages postés
33
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
27 février 2008

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
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
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
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
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;
Messages postés
33
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
27 février 2008

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