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

标签 c++ windows fstream

当使用 fstream 将这些符号打印到文件时,我得到了一个困惑的结果。 使用:

file << "Δ" << endl;

这在 Linux 中工作正常,但是当我为 Windows 编译它时它不工作。

是否有特定的方法可以在 Windows 中进行此操作?

最佳答案

以下应该适用于 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;
}

关于c++ fstream不打印像ρ和Δ这样的符号来正确归档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078198/

相关文章:

c++ - MinGW C++ : Reading a file with non-ascii file name

c++ - 尝试从文本文件读取到对象数组

c++ - 由于无法访问主函数之外的 SDL 函数而导致崩溃

c++ - Qt QOpenGLWidget wheelEvent 奇怪的行为

python - 我有一个带有独特字母表的文档,我该如何翻译它?

c++ - 使用多态创建 'array of types'

python - Websocket 代码适用于 Windows 但不适用于 Linux

windows - Windows 上的 Git 别名 : How to escape double quotes

windows - 将 Unix/Linux 时间转换为 Windows 时间的方法

c++ - 在 C++ 中将文件读入内存的最快方法?