通过 class wfstream 在输出文件中写入波斯语 ( farsi )
Writing persian ( farsi ) by class wfstream in output file
我如何使用 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;
}
运行程序后文件为空。
首先你可以离开
f << s1.c_str();
只需使用
f << s1;
要使用 std::wstream
编写“خلی♬ وارس”,您必须为波斯语言环境指定 imbue
,例如:
f.imbue(std::locale("fa_IR"));
写入文件之前。
您可以使用 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;
}
我如何使用 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;
}
运行程序后文件为空。
首先你可以离开
f << s1.c_str();
只需使用
f << s1;
要使用 std::wstream
编写“خلی♬ وارس”,您必须为波斯语言环境指定 imbue
,例如:
f.imbue(std::locale("fa_IR"));
写入文件之前。
您可以使用 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;
}