Запись в файл русских букв (консоль С++).

Решение проблем и ответы на вопросы

  • Мобильная версия сайта
  • Редакция от:25.11.2016 18:19:42

Тема: "Запись в файл русских букв (консоль С++)."

Программа работает с русскими буквами нормально, но когда дело доходит до записи в файл записывает какую-то крякозябру. Помогите решить эту проблему. Использую компилятор Dev C++

#include
#include
#include
#include
using namespace std;

class Cesar {
char str[80];
char str1[80];
char Alfavit1[35];
char Alfavit2[35];
char p;
public:
Cesar() {strcpy(Alfavit1, "AAAAAA??CEEEEIIII?NOOOOO?OUUUUY??"); strcpy(Alfavit2, "aaaaaa??ceeeeiiii?nooooo?ouuuuy?y");}
char FileName[50];
int sdvig;
void Zashifrovka();
};

void Cesar::Zashifrovka()
{
cout cin >> FileName;

ofstream out(FileName); // Nicaaai iioie aey auaiaa eioi?iaoee e ioe?uaaai oaee test (ia?aaaai eiino?oeoi?o eiy oaeea, oio a nai? i?a?aau ioe?uaaao oaee)
if(!out) { // I?e iaoaa?iii ioe?uoee iioie noaiiaeouny cia?aieai false, a iaiai?io true
cout }

cout cin >> str;
cout cin >> sdvig;

for(int i=0; i == Alfavit1[j]) {
str1 = Alfavit1[j+sdvig];
}
if(str == Alfavit2[j]) {
str1 = Alfavit2[j+sdvig];
}
}
}
str1[34] = '\0';
cout for(int i=0; i;

out.close();
}

int main()
{
Cesar obj;
int x;
//setlocale(LC_ALL, "rus");
cout cout cout cout cin >> x;
switch(x) {
case 1: obj.Zashifrovka();
break;
case 2:
break;
}

//if()

getch();
return 0;
}

  • Ваш редактор кода настроен на кодировку ISO-8859-1.

    Измените на Windows-1251 и будет вам, некоторое, счастье!

    Для начала смените шрифт самой консоли на Lucida Console. Для этого откройте любую свою консольную программу, щёлкните ПКМ по заголовку окна и из контекста выберите Свойства. В открывшемся окне перейдите на вкладку Шрифт и выделите Lucida Console, после чего нажмите кнопку ОК. В появившемся окне Изменение свойств, установите галочку напротив Сохранить свойства для других окон с теми же именами и нажмите кнопку ОК.

    Проверьте работоспособность. Если изменений не произошло, то в функции main() первой строкой поставьте оператор.. .

    system("chcp 1251");

    ...а вслед за ним.. .

    system("cls");

    Теперь всё должно работать!

    P.S. Функция system() объявлена в заголовочном файле stdlib.h.
Настройка, вход в admin 192.168.1.1.. Все права защищены 2015-2019.