c ++ fstream不能正确打印像ρ和Δ这样的符号

时间:2013-04-18 08:37:32

标签: c++ windows fstream

使用fstream将这些符号打印到文件时,我得到了混乱的结果。 使用:

file << "Δ" << endl;

这在Linux中运行良好,但是当我为Windows编译它时它不起作用。

是否有一种特定的方法可以在Windows中完成这项工作?

1 个答案:

答案 0 :(得分:2)

以下内容适用于MSVC2010。使用std::codecvt_utf8_utf16将宽字符转换为UTF-8字节流:

#include <fstream>
#include <codecvt>
int main() 
{
    std::wofstream file("myfile", std::ios::out | std::ios::binary);
    file.imbue(std::locale(file.getloc(), new std::codecvt_utf8_utf16<wchar_t>));

    file << L"Δ" << std::endl;
}