在编译时将wchar_t
窄化为char
,可以使用std::wstring_convert
进行转换。以下是一个示例代码:
#include
#include
#include
int main() {
// 定义宽字符字符串
wchar_t wstr[] = L"宽字符字符串";
// 创建一个转换器,将宽字符转换为多字节字符
std::wstring_convert> converter;
// 将宽字符字符串转换为多字节字符字符串
std::string str = converter.to_bytes(wstr);
// 打印多字节字符字符串
std::cout << str << std::endl;
return 0;
}
在上面的示例中,我们使用std::wstring_convert
和std::codecvt_utf8
来创建一个转换器,将宽字符字符串转换为多字节字符字符串。然后使用to_bytes
函数将宽字符字符串转换为多字节字符字符串,并打印结果。
请注意,std::wstring_convert
是C++11中引入的,因此编译时需要使用对应的编译选项(例如-std=c++11
)来启用C++11支持。