@totorialman

Как в c++ сохранить txt файл в кодировке ansi?

Файл изначально в кодировке ansi, после прочтения его нужно перезаписать сохранив кодировку
  • Вопрос задан
  • 375 просмотров
Решения вопроса 1
@code_panik
Под ANSI обычно подразумевается однобайтовая кодировка Windows-1251.
Синонимы: CP1251; ANSI (только в русскоязычной ОС Windows).

Символ типа char в C++ всегда имеет размер 1 байт, поэтому работаем с файлом самым обычным образом. Прочитанное содержимое (возможно части) файла можно сохранить в буфере типа std::string или массиве char. Файл в программе можно представить объектом потока: std::ifstream, std::ofstream, std::fstream. Выходной файл, в который запишем содержимое полученного таким образом буфера, будет иметь ту же кодировку ANSI.

Проще всего прочитать всё содержимое файла в буфер и потом перезаписать файл полностью, например так.
#include <fstream>
#include <string>

 int main() {
	 const std::string path = "<путь к файлу>";
	 std::fstream file(path, std::ios::in);
	 std::string text;
	 std::getline(file, text, '\0');
	 file.close();

	 text += "[edit]\n";

	 file.open(path, std::ios::out);
	 file << text;
	 return 0;
 }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы