使用 cout 显示WCHAR发现,并不能正确显示,如下面:
Code
int main()
{
using namespace std;
WCHAR wc[3] = {L'W',L'I',L'\0'};
cout << wc;
int main()
{
using namespace std;
WCHAR wc[3] = {L'W',L'I',L'\0'};
cout << wc;
显示结果为0012FE3。
初步分析是cout并没有实现对WCHAR的重载。google后得到信息,使用wcstombs()函可以把WCHAR转化为CAHR,这样就可以正确显示:
Code
WCHAR wc[3] = {L'W',L'I',L'\0'};
cout << wc;
char c[3];
wcstombs(c,wc,3
WCHAR wc[3] = {L'W',L'I',L'\0'};
cout << wc;
char c[3];
wcstombs(c,wc,3
备用之。