Чтение и запись файлов в кодировке cp866 на C

#c #file #winapi #encoding #dos

#c #файл #winapi #кодирование #dos

Вопрос:

Как мне правильно прочитать и записать файл с текстом в кодировке cp866 на C ?

UPD: я нашел способ записи в файл

 wofstream rstrm(fileName);
rstrm.imbue(locale("rus_rus.866"));
rstrm << text_in_cyrillic.c_str();
rstrm.close();
  

Теперь, как я могу прочитать файл аналогичным образом? Мне нужно прочитать содержимое файла в объект tstring.

Комментарии:

1. Зачем вам это нужно? Как насчет использования UTF-8? И std::string s; file >> s; будет работать, но это, вероятно, не то, что вы хотите.

2. @ybungalobill к сожалению, это не мой случай.

Ответ №1:

Используйте WideCharToMultiByte и сообщите ему cp866 и запишите результаты.