@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.