Rumah >pembangunan bahagian belakang >C++ >Mengapa rentetan wchar_t dicetak sebagai nilai hex dan bukannya aksara apabila menggunakan cout?
Mencetak Nilai wchar_t ke Konsol
Dalam kod anda, anda cuba mencetak rentetan wchar_t (rentetan aksara lebar) menggunakan aliran keluaran standard ( cout). Walau bagaimanapun, ini menyebabkan nilai hex dicetak dan bukannya aksara sebenar. Untuk mencetak rentetan wchar_t dengan betul, anda perlu menggunakan aliran keluaran aksara lebar (wcout) sebaliknya.
Pertimbangkan contoh yang anda berikan:
#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; }
Untuk mencetak rentetan wchar_t dengan betul, gantikan cout dengan wcout:
... wcout << ru << endl << en; // Prints actual characters ...
Dengan perubahan ini, program akan mengeluarkan aksara Rusia "Привет" dan "Hello" seperti yang dijangkakan. Ambil perhatian bahawa tempat lalai mungkin tidak menyokong semua aksara dalam rentetan wchar_t, jadi sesetengah aksara mungkin tidak dipaparkan dengan betul.
Atas ialah kandungan terperinci Mengapa rentetan wchar_t dicetak sebagai nilai hex dan bukannya aksara apabila menggunakan cout?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!