写一个std :: u16string到文件?

时间:2016-02-10 19:29:47

标签: c++ string c++11 wstring

我正在尝试将std :: u16string写入文件
可以使用std :: string

轻松完成
filenames

但是如何将std :: u16string写入文件?

由于

1 个答案:

答案 0 :(得分:2)

您需要创建一个basic_ofstream,其char类型等同于u16string值类型,该类型应为char16_t

typedef std::basic_ofstream<char16_t> u16ofstream;

u16ofstream outfile("words.txt", std::ios_base::app);
outfile << someu16string; 
outfile.close();

或者,您可以将u16string转换为常规string,然后将其写入普通ofstream,但您必须处理转换并处理字符串的编码是你自己的。

在某些平台(特别是Windows)上,

wofstream也可能与u16string兼容,但它不可移植。