Rumah >pembangunan bahagian belakang >C++ >Mengapakah mencetak nilai `wchar_t` ke konsol menghasilkan alamat perenambelasan dan bukannya aksara?
Mencetak Nilai wchar_t ke Konsol
Apabila cuba mencetak nilai wchar_t menggunakan std::cout, pengguna mungkin menghadapi keadaan di mana hanya alamat heksadesimal muncul menggantikan watak yang dimaksudkan. Anomali ini berlaku disebabkan oleh ketidakpadanan antara wchar_t, yang mewakili aksara lebar dan std::cout, yang direka untuk mengendalikan aksara sempit.
Untuk membetulkan isu ini, jawapan masalah mencadangkan memanfaatkan std::wcout sebaliknya .
PENYELESAIAN
Yang coretan kod di bawah menunjukkan penggunaan std::wcout untuk mencetak rentetan wchar_t dengan betul:
#include <iostream> using namespace std; int main() { wchar_t en[] = L"Hello"; wchar_t ru[] = L"Привет"; //Russian language wcout << ru << endl << en; return 0; }
Dengan menggunakan std::wcout, aksara lebar dalam tatasusunan wchar_t ditafsirkan dengan betul dan dicetak ke konsol, menyelesaikan isu alamat perenambelasan. Pendekatan ini membolehkan paparan aksara yang betul di luar julat aksara sempit standard, seperti yang ditemui dalam bahasa yang berbeza.
Atas ialah kandungan terperinci Mengapakah mencetak nilai `wchar_t` ke konsol menghasilkan alamat perenambelasan dan bukannya aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!