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);
    

Log in to reply