Bonjour,
mon appli reçois des trames hexa (via un socket), et je voudrais les mettre dans des flux, octet par octet. Mais je ne parviens pas à le faire correctement. Certains octets sont affichés n'importe comment (avec des fffff en plus) et d'autres ne sont carrément pas affichés. Voici, par exemple, ma fonction pour afficher un buffer sur la sortie standard:
Par exemple, avec le buffer suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void DisplayHexBuffer( const std::string & buffer ) { for (size_t i=0; i<buffer.size(); i++) std::cout << "0x" << std::hex << (int) buffer[i] << " "; std::cout << std::dec << std::endl; }
buffer: 0x02 0xd4 0x02 0x01 0x03 0x00 0xf0 0x01 0xf4 0x7d 0x00 0x03
j'obtiens la sortie suivante:
J'ai essayé plein de trucs (forcer la taille avec setw, essayé différents casts, passer par une stringstream, etc...) mais rien n'y fait. J'ai du mal avec ces histoires de chaines hexa. Quelqu'un aurait une idée de la méthode correcte pour faire ça?Envoyé par sortie console
Partager