Representation hexadecimal d'une zone memoire.
Salut,
j'ai une zone memoire (contenu aleatoire) dont j'aimerai convertir le contenu en chaine de caractaire.
Je peu facilement le faire avec sprintf :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| string getStrFromMEM(UINT8 * bda)
{
string result;
char tmp[3];
for(int i= 0; i<MEM_LEN;i++)
{
sprintf(tmp,"%X", bda[i]);
result+= tmp;
}
return result;
} |
Seulement comme je fai du C++ et non du C, j'ai essayé de le faire en utilisant les stringstream :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| string getStrFromMEM(UINT8 * bda)
{
string result;
ostringstream iss;
for(int i= 0; i<MEM_LEN;i++)
{
iss << hex << bda[i];
result+= iss.str();
}
return result;
} |
Malheureusement sa me donne un resultat qui n'a rien à voir avec l'hexadeciml.
J'ai essayé d'autres variante de ce code, en convertisant bda[i] en short, en char ou en ajoutant un 0 de fin de chaine avant de le passer dans le stream, Mais sa ne me donne j'amais le resultat que j'attend, contrairement qu'avec sprintf.
merci d'avances pour vos reponces.