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 :
Seulement comme je fai du C++ et non du C, j'ai essayé de le faire en utilisant les stringstream :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Malheureusement sa me donne un resultat qui n'a rien à voir avec l'hexadeciml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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.
Partager