#include<iostream>
#include<stdlib.h>
void main(){
wchar_t* p1 = L"123456";
std::cout << p1 << std::endl;
wchar_t* p2 = L"你好世界123455";
std::cout << p2 << std::endl;
system("pause");
}
上述程序控制台输出结果为:
123456
请按任意键继续. . .
为了解决上述问题,采用以下解决方案:
#include<iostream>
#include<stdlib.h>
#include<locale>
void main(){
setlocale(LC_ALL,"chs");
wchar_t* p1 = L"123456";
std::cout << p1 << std::endl;
wchar_t* p2 = L"你好世界,123456";
std::cout << p2 << std::endl;
system("pause");
}
控制台运行结果:
123456
你好世界,123456
请按任意键继续. . .
本文探讨了如何通过设置locale解决C++程序中宽字符(L)与UTF-16之间的输出问题,展示了如何正确显示非ASCII字符。通过实例演示了`setlocale`函数在处理中文字符输出上的作用。
2045

被折叠的 条评论
为什么被折叠?



