Comment écrire les valeurs hexadécimales d'un caractère en ASCII dans un fichier texte?
Voici ce que j'ai actuellement:
void WriteHexToFile( std::ofstream &stream, void *ptr, int buflen, char *prefix )
{
unsigned char *buf = (unsigned char*)ptr;
for( int i = 0; i < buflen; ++i ) {
if( i % 16 == 0 ) {
stream << prefix;
}
stream << buf[i] << ' ';
}
}
J'ai essayé de faire un stream.hex de ruisseau.setf( std::ios::hex ), ainsi que la recherche Google pour un peu. J'ai aussi essayé:
stream << stream.hex << (int)buf[i] << ' ';
Mais cela ne semble pas fonctionner non plus.
Voici un exemple de la sortie qu'il produit actuellement:
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í Í
Je voudrais la sortie ressembler à ce qui suit:
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
source d'informationauteur xian
Vous devez vous connecter pour publier un commentaire.
Edit: avec zéro padding:
Plus de code ici.
Essayer:
Vous pouvez aussi le faire avec quelque chose d'un peu plus ancienne:
J'ai l'habitude de faire une fonction qui renvoie les chiffres et simplement l'utiliser:
CHAR à wchar_t (unicode) chaîne HEXADÉCIMALE de
Il vous suffit de configurer votre flux une fois: