Heim > Backend-Entwicklung > C++ > Warum werden wchar_t-Strings bei Verwendung von cout als Hexadezimalwerte statt als Zeichen ausgegeben?

Warum werden wchar_t-Strings bei Verwendung von cout als Hexadezimalwerte statt als Zeichen ausgegeben?

Mary-Kate Olsen
Freigeben: 2024-11-16 15:43:03
Original
236 Leute haben es durchsucht

Why are wchar_t strings printed as hex values instead of characters when using cout?

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;
}
Nach dem Login kopieren

Um die wchar_t-Strings korrekt zu drucken, ersetzen Sie cout mit wcout:

...
    wcout << ru << endl << en; // Prints actual characters
...
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage