Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Класс FILE |
Автор: ArnoldRich 13.12.2013, 07:36 |
Как используя класс FILE записать в текстовый файл с кодировкой MS-DOS 866 ? Или использовать другой класс? CString text; CString file_name; text = "Этот текст должен быть записан в кодировке MS-DOS 866 в текстовый файл."; file_name = "MyFile.txt"; FILE *fp; fp = fopen(file_name, "w+"); fprintf(fp, text + "\n"); fclose(fp); |
Автор: feodorv 13.12.2013, 08:02 | ||||
это компилируется? В любом случае правильный вывод с помощью fprintf будет выглядеть вот так:
Что касается основного вопроса: то нужно просто перевести текст в кодировку 866 (а можно и исходные тексты программы перевести в cp866, если другая кодировка не используется). Добавлено позже это компилируется? В любом случае правильный вывод с помощью fprintf будет выглядеть вот так:
Что касается основного вопроса: то нужно просто перевести текст в кодировку 866 (а можно и исходные тексты программы перевести в cp866, если другая кодировка не используется). |
Автор: ArnoldRich 17.12.2013, 07:03 | ||
CharToOem |
Автор: Earnest 19.12.2013, 14:04 |
Строго говоря, общее решение - это преобразование через Юникод. Т.е. сначала MultiByteToWideChar, затем WideCharToMultiByte, в каждом случае указывая нужную кодовую страницу. Если текущая кодовая страница OEM совпадает с 866, то можно использовать CharToOem. Это если автор говорил о Windows |