4

を使用してファイルに「خلیجرس」のようなペルシャ語のテキストを書き込むにはどうすればよい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;
}

プログラムを実行した後、ファイルは空です。

4

2 に答える 2

5

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;
}
于 2016-01-03T21:19:56.370 に答える
2

まず、あなたは去ることができます

f << s1.c_str();

使うだけ

f << s1;

「خلیکک」と書くには、次のようにペルシャ語ロケールをstd::wstream指定する必要があります。imbue

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

ファイルに書き込む前に。

于 2016-01-03T20:27:30.897 に答える