控制台输出中文字符
有时调试需要在控制台输出 string(使用 printf), wstring(wprintf) 。但是当 wstring 中包含中文等Unicode字符时,wprintf就无法正确输出中文字符。
方法一、使用 _cwprintf来代替。
#include <iostream>
#include <conio.h>
// 需要包含头文件:<conio.h>
_cwprintf(L"中文 Test \n", L" 测试 string");
方法二、设置locale
std::wcout有时无法在控制台输出带有中文的字符,需要先进行设置,如下:
// 需要设置,否则下面的测试内容无法输出
std::wcout.imbue(std::locale(std::locale(), "", LC_CTYPE));
std::wcout << L"测试数据 中文 string 内容" << std::endl;
浙公网安备 33010602011771号