ЛБ
Леонид Беляев

Как записывать русские буквы в файл а не кракозябры на c++? Как записывать русские буквы в файл а не кракозябры на c++?

Вот код:

#include
#include
#include
#include
#include
#include

using namespace std;

const int N=256; //Константный размер строки
char *FName="F:\\text.txt";

void ReadFile()
{
cout

АГ
Анна Горячева

Попробуйте поменять 866 на 65001. MS давно пора оскопить за такое, он слишком сложные задачи на новичков вешает.

Вы читаете из консоли символы в определенной кодировке, которая превращает их в байты. А пишите в файл уже байты, а не символы.

В результате полученный файл имеет ту же кодировку, что консоль. А консоль на Винде имеет дебильную кодировку из-за соображений обратной совместимости. Число "65001" на Винде обозначает UTF-8. Число 866 означает неведомую DOS-овскую OEM-кодировку, которую только cmd и использует, и никто более.

Евгения
Евгения

Для этого нужно записывать в той же кодировке, в которой собираетесь читать.

Ангельское
Ангельское

Использовать UNICODE

Славик
Славик

может тут добавить надо char bufRus [256] //глобальная переменная bufRus используется в функции Rus, т. е. в директиве #include

Похожие вопросы
C++ добавление в файл
как сохранить exe файл в C++ ?как сохранить exe файл в C++ ?
У меня в некоторых программах вместо русского языка кракозябры!
C# Объединение файлов
Как зарандомить буквы в C#?
Как можно вывести русские буквы в консоль C++ вместе с псевдографической таблицей?
Вместо русских букв в программе кракозябры.
Как записывать нормальные буквы в файл а не кракозябры на c++?
Заголовочные файлы c++
C++, работа с файлами