Casten : Probleme char in int - ngeative Werte
-
Hallo .
Ich habe ein Problem :
ich lese aus einer Datei Bytes aus und möchte diese weiterverarbeiten. Dazu muss ich sie aber als Integer haben. Sprich die ASCII nummer .
Bei einigen Werten bekomme ich aber negative Werte.cout<<(int)char(193);
. So zum Beispiel .
Kann mir jemand erklären warum ?Vielen Dank euer Albert.
-
Wenn bei Deinem Compiler char signed ist, dann liegt der Wertebereich nunmal bei (mindestens) -127..127. 192 gehört da nicht dazu.
Verwende unsigned char.
-
Besten Dank darna hat es gelegen.
-
Oder mach es direkt standardophil und benutz die char_traits.
#include <string> [...] std::char_traits<char> traits; int i = 192; char c = traits.to_char_type( i); i = traits.to_int_type( c);