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 : 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;
}
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
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.