Frage zu Typumwandlung mit stringstream (std::hex)
-
Hallo,
ich wollte mal fragen, warum das nicht funktioniert:stringstream Str; string test = "f"; //string mit dem "wert" f Str<<test; Str<<std::hex; unsigned char byte; Str>>byte; //byte sollte jetzt den wert 15 haben cout<<byte; //gibt 'f' bzw 102 ausWenn ich nicht unsigned char sondern unsigned int als typ für byte nehme, klappt alles wunderbar. Warum ist das so? ich habe doch über std::hex dem stringstream mitgeteilt, dass der mir das "f" doch bitte als hexzahl zurückliefern soll ?! Oder nicht ?!
-
-
_matze schrieb:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-219213-and-highlight-is-stringstream+hex.html
Da wird ein ganz anderes Problem durchgenommen...
So sollte das gehen.
string test("f"); //string mit dem "wert" f std::stringstream sstr(str); int hexval; //hier int, sonst wird die Ueberladung für char (interpretiert als Zeichen) aufgerufen sstr >> std::hex >> hexval; //byte sollte jetzt den wert 15 haben cout << hexval; //gibt 15 bzw 15 aus
-
Tachyon schrieb:
Da wird ein ganz anderes Problem durchgenommen...
Sorry, zu schnell (bzw. kaum) gelesen... war ja noch früh...

-
CorDrakonis schrieb:
Hallo,
ich wollte mal fragen, warum das nicht funktioniert:stringstream Str; string test = "f"; //string mit dem "wert" f Str<<test; Str<<std::hex; unsigned char byte; Str>>byte; //byte sollte jetzt den wert 15 haben cout<<byte; //gibt 'f' bzw 102 ausWenn ich nicht unsigned char sondern unsigned int als typ für byte nehme, klappt alles wunderbar. Warum ist das so? ich habe doch über std::hex dem stringstream mitgeteilt, dass der mir das "f" doch bitte als hexzahl zurückliefern soll ?! Oder nicht ?!
Nein, du sagst, dass das, was du als nächstes reinschreibst als hex geschrieben werden soll. Versuche:
std::stringstream Str; Str << std::hex << "f"; int value = 0; Str >> value; std::cout << value;Stefan.