宽流和焦炭

时间:2013-02-03 04:45:32

标签: c++ widechar

我看到允许将char写入std::wostream(例如,std::wcout<<"looooool";)。

char如何更改为wchar(如果发生了这种情况)?

1 个答案:

答案 0 :(得分:1)

当您向宽流发送char或c字符串(char *)时,“{3}}会将”个别八位字节(字节)转换为wchar。 std::string没有自动转换。

您不能以这种方式将多字节UTF-8字符发送到宽流中,因为一次转换一个字节。在默认语言环境中,没有从非ascii字符到宽字符的转换,因此转换将失败,将宽流放入错误状态。

您是否利用此转换取决于您;标准允许它,至少对于字符和字符串文字,它对我来说似乎无害。但请注意,您发送到宽流的字符串对象必须是std::wstring,而不是std::string

相关问题