Heim >Backend-Entwicklung >C++ >Warum druckt „cout' „unsigned char'-Werte nicht korrekt?
Warum druckt cout unsigned char nicht korrekt?
Im bereitgestellten Code:
#include <iostream> #include <stdio.h> using namespace std; int main() { unsigned char a = 1; printf("%d", a); cout << a; }
Die Ausgabe enthält ein Wert, der beim Drucken mit cout als Müll erscheint. Dies liegt daran, dass das ASCII-Zeichen, das dem Wert von a (1) entspricht, nicht druckbar ist. Um dies zu überprüfen, verwenden Sie std::isprint wie folgt:
std::cout << std::isprint(a) << std::endl;
Das Ergebnis ist 0 (falsch), was anzeigt, dass das Zeichen nicht druckbar ist.
Um dieses Problem zu beheben und Habe cout print „1“, wandele a in eine vorzeichenlose Ganzzahl um:
cout << static_cast<unsigned>(a) << std::endl;
Das obige ist der detaillierte Inhalt vonWarum druckt „cout' „unsigned char'-Werte nicht korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!