Drucken von wchar_t-Werten auf der Konsole
In Ihrem Code haben Sie versucht, wchar_t-Zeichenfolgen (breite Zeichenketten) mithilfe des Standardausgabestreams ( cout). Dies führt jedoch dazu, dass Hexadezimalwerte anstelle der tatsächlichen Zeichen gedruckt werden. Um wchar_t-Strings korrekt zu drucken, müssen Sie stattdessen den Breitzeichen-Ausgabestream (wcout) verwenden.
Betrachten Sie das von Ihnen bereitgestellte Beispiel:
#include <iostream> using namespace std; int main() { wchar_t en[] = L"Hello"; wchar_t ru[] = L"Привет"; // Russian language cout << ru << endl << en; // Prints hex values return 0; }
Um die wchar_t-Strings korrekt zu drucken, ersetzen Sie cout mit wcout:
... wcout << ru << endl << en; // Prints actual characters ...
Mit dieser Änderung gibt das Programm die russischen Zeichen „Привет“ und aus „Hallo“ wie erwartet. Beachten Sie, dass das Standardgebietsschema möglicherweise nicht alle Zeichen in der wchar_t-Zeichenfolge unterstützt, sodass einige Zeichen möglicherweise nicht korrekt angezeigt werden.
Das obige ist der detaillierte Inhalt vonWarum werden wchar_t-Strings bei Verwendung von cout als Hexadezimalwerte statt als Zeichen ausgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!