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.







Répondre avec citation
Partager