Maison >développement back-end >C++ >Pourquoi les chaînes wchar_t sont-elles imprimées sous forme de valeurs hexadécimales au lieu de caractères lors de l'utilisation de cout ?
Impression des valeurs wchar_t sur la console
Dans votre code, vous avez tenté d'imprimer des chaînes wchar_t (chaînes de caractères larges) à l'aide du flux de sortie standard ( cout). Cependant, cela entraîne l'impression de valeurs hexadécimales au lieu des caractères réels. Pour imprimer correctement les chaînes wchar_t, vous devez plutôt utiliser le flux de sortie de caractères larges (wcout).
Considérez l'exemple que vous avez fourni :
#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; }
Pour imprimer correctement les chaînes wchar_t, remplacez cout avec wcout :
... wcout << ru << endl << en; // Prints actual characters ...
Avec ce changement, le programme affichera les caractères russes "Привет" et "Bonjour" comme prévu. Notez que les paramètres régionaux par défaut peuvent ne pas prendre en charge tous les caractères de la chaîne wchar_t, donc certains caractères peuvent ne pas s'afficher correctement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!