Собственно говоря пишу на Dev C++
В консоли после компиляции русские символы отображаются нормально, а вот при работе с файлами начинаются проблемы.
Например, при записи в файл, текст пишется в кодировек OEM 866.
Конечно хотелось бы чтобы писалось всё в Windows-1251.
Подскажите, можно ли на уровне самой программы (а не на уровне компилятора), задать в какой кодировке будет писаться текст в файл?

@темы: C++

Комментарии
17.03.2011 в 20:22

Пау-чок
Может быть вам сможет помочь библиотека iconv?
17.03.2011 в 21:14

Ещё бы кто-нибудь написал как эту библиотеку устанавливать под win + как ей пользоваться в самом си. :D
17.03.2011 в 23:49

На свете есть всего 10 разновидностей людей. Те, которые понимают бинарный код, и те, кто не понимают
Есть функции OemToChar и CharToOem, посмотрите тут или еще поищите чего
18.03.2011 в 00:20

Пау-чок
infinity235
Отсюда скачиваете файл libiconv-1.13.1-1-mingw32-dev.tar.lzma, распаковываете его (7zip точно умеет и lzma, и tar распаковывать). Получаете две папки - lib и include. Их содержимое копируете в соответствующие папки Dev C++.
Далее, в исходном коде где надо подключаете iconv.h, а в параметрах проекта (Alt+P) на вкладке "Параметры" жмёте "Добавить библиотеку" - и в папке lib выбираете файл libiconv.dll.a
Функции, входящие в библиотеку описаны тут: iconv(), iconv_open(), iconv_close() и iconvctl().
Вот небольшой пример:

18.03.2011 в 00:38

Спасибо всем за помощь.
Помогла функция OemToAnsi.