写一个 std::u16string 到文件?

Write a std::u16string to file?

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

可以轻松完成
// ... pseudocode
std::wofstream outfile;
outfile.open("words.txt", std::ios_base::app);
outfile << "something"; 
outfile.close();
// ...

但是我怎样才能将 std::u16string 写入文件?

谢谢

你需要创建一个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,但您必须处理转换并处理你自己的字符串编码。

wofstream 也可能与某些平台上的 u16string 兼容(特别是 Windows),但它不可移植。