Bonjour,
J’ai le code suivant en C++ :
#include <iostream>
#include <sstream>
int main()
{
std::istringstream flux_entree{ "f8 ad 32" };
int rouge{ 0 };
int vert{ 0 };
int bleu{ 0 };
std::cout << flux_entree.get() << std::endl;
flux_entree >> std::hex >> rouge >> vert >> bleu;
std::cout << "Niveau de rouge : " << rouge << std::endl;
std::cout << "Niveau de vert : " << vert << std::endl;
std::cout << "Niveau de bleu : " << bleu << std::endl;
return 0;
}
Et voici ce que ça m’affiche :
102
Niveau de rouge : 8
Niveau de vert : 173
Niveau de bleu : 50
J’ai plusieurs questions :
- Pourquoi
flux_entree.get()
me retourne 102 ? Je n’ai pas 102 dans ma string, que ce soit en décimal ou hexadécimal (66). Il me semblait queget()
me retournait le premier caractère du flux, je m’attendais à avoirf
s’afficher à l’écran… - En supprimant la ligne
std::cout << flux_entree.get() << std::endl;
j’obtiens le résultat suivant :
Niveau de rouge : 248
Niveau de vert : 173
Niveau de bleu : 50
Le caractère espace est le séparateur de données pour un flux ?
Merci pour vos réponses !
+0
-0