Не работает смена локали

Рейтинг: 1Ответов: 2Опубликовано: 31.10.2014
#include "stdafx.h"
#include <iostream>
using namespace std; 
void Plus(){
int long a,b;
cout << "Введите первое число: ";
cin >> a;
cout << "Введите второе число: ";
cin >> b;
cout << "Ваш ответ: " << a + b << endl;
 }
 void Minus(){
int long a, b;
cout << "Введите первое число: ";
cin >> a;
cout << "Введите второе число: ";
cin >> b;
cout << "Ваш ответ: " << a - b << endl;
 }
 void Ymnojit(){
int long a, b;
cout << "Введите первое число: ";
cin >> a;
cout << "Введите второе число: ";
cin >> b;
cout << "Ваш ответ: " << a * b << endl;
}
 void Podelit(){
int long a, b;
cout << "Введите первое число: ";
cin >> a;
cout << "Введите второе число: ";
cin >> b;
cout << "Ваш ответ: " << a / b << endl;
  }
    int main(){
       setlocale(LC_ALL, "Russian");
       int a;
       cout << "Режим:" << endl;
       cin >> a;
       if (a == 1){
         Plus();
} if (a == 2){
    Minus();
} if (a == 3){
    Ymnojit();
} if (a == 4){
    Podelit();
}
system("pause");
return 0;
  }

setlocale(LC_ALL, "Russian"); - не помогает.

Ответы

▲ 1

Тут подобные вопросы обсуждались много-много-... раз.

Попробуйте набрать в гугле:

site:hashcode.ru C++ windows русский язык кракозябры

и почитать, например, здесь.

--

А @KoVadim прав. Не стоит учиться программированию на C/C++ в винде (а может, и вообще не стоит уже на нее время тратить).

▲ 1
system("chcp 1251");  

Мне это помогает, самый простой и удобный вариант если вы учитесь.

setlocale(LC_ALL, "Russian"); - можно в данном случае не использовать.

Единственно, в консоли будет лишняя информация такого рода: "Текущая кодовая страница: 1251"

Дальше, когда углубитесь, будут и другие решения, более сложные, универсальные.