unsigned char wird immer als Zahl dargestellt



  • unsigned char C = 'A';
    ShowMessage(String(C)); // 65
    
    unsigned char C = (unigned char) (255);
    TStringStream* Stream = new TStringStream;
    Stream->WriteString(String(C)); // 255
    delete Stream;
    

    wieso interpretiert er es denn immer als Zahl und nie als Zeichen ?



  • Weil der Konstruktor-Aufruf bei String(unsigned char) automatisch den String(unsigned short) verwendet (da es explizit keinen String(unsigned char)-Konstruktor gibt).
    Du kannst daher folgendes benutzen:

    String((char)C);
    

    Warum verwendest du überhaupt explizit 'unsigned', denn um Zeichen zu speichern ist 'char' bzw, 'wchar_t' gedacht?



  • Weil ich Farbwerte von 0-255 habe die ich in eine Datei schreiben möchte.
    (Ja ich habe das Rad neu erfunden)


Anmelden zum Antworten