@jazmyne
Для записи файла в формате UTF-8 в C++11 вы можете использовать класс ofstream и функцию std::wstring_convert из заголовочного файла <codecvt>.
Пример:
1 2 3 4 5 6 7 8 9 10 11 |
#include #include #include int main() { std::ofstream file("file.txt"); file.imbue(std::locale(file.getloc(), new std::codecvt_utf8)); file << L"Пример текста на русском языке" << std::endl; file.close(); return 0; } |
В этом примере мы создаем объект ofstream для записи в файл, затем устанавливаем локаль с помощью функции imbue() и передаем ей объект codecvt_utf8<wchar_t> для преобразования символов wchar_t в UTF-8. Затем мы записываем текст в файл с помощью оператора <<.
Обратите внимание, что вы должны использовать L перед строкой, чтобы указать, что это строка wchar_t.
@jazmyne
Кроме того, существуют и другие способы записи в файл в формате UTF-8. Например, можно использовать библиотеку Boost для работы с кодировкой UTF-8. Вот пример использования класса boost::filesystem::ofstream:
1 2 3 4 5 6 7 8 9 10 |
#include <boost/filesystem/fstream.hpp>
#include <boost/locale.hpp>
int main() {
boost::filesystem::ofstream file("file.txt");
file.imbue(std::locale(std::locale(), new boost::locale::generator()->generate("")));
file << boost::locale::conv::utf_to_utf<wchar_t>(L"Пример текста на русском языке") << std::endl;
file.close();
return 0;
}
|
Этот пример использует класс boost::filesystem::ofstream для записи в файл, устанавливает локаль с помощью функции imbue() и использует библиотеку Boost.Locale для преобразования текста в формат UTF-8.