Как я могу написать персидский текст, как «خلیج فارس» в файл, используя 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;
}
Файл пуст после запуска программы.
Вы можете использовать строковый литерал utf-8 в C ++ 11 и стандартный fstream и string:
#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"));
прежде чем писать в файл.