在输出文件中通过类wfstream写入persian(farsi)

Writing persian ( farsi ) by class wfstream in output file

本文关键字:persian 写入 farsi wfstream 文件 输出      更新时间:2023-10-16

如何使用std::wfstream将波斯语文本(如"خلیجار")写入文件
我尝试了以下代码,但它不起作用。

#include <iostream>
#include <string>
#include <fstream>
int main()
{
    std::wfstream f("D:\test.txt", std::ios::out);
    std::wstring s1(L"خلیج فارس");
    f << s1.c_str();
    f.close();
    return 0;
}

运行程序后,文件为空。

您可以使用C++11 utf-8字符串文字和标准的fstream和字符串:

#include <iostream>
#include <fstream>
int main()
{
    std::fstream f("D:\test.txt", std::ios::out);
    std::string s1(u8"خلیج فارس");
    f << s1;
    f.close();
    return 0;
}

首先你可以离开

f << s1.c_str();

只需使用

f << s1;

要用std::wstream写"خلیجار",必须为波斯语言环境指定imbue,如:

f.imbue(std::locale("fa_IR"));

在写入文件之前。