На данный вопрос уже ответили:
При вводе в if условия на русском программа не выводит код дальше
cout << "Выбери действие:\nсложение/вычитание/умножение/деление/выход\n\n";
cin >> menu;
cout << "\n------------------------------------\n";
if (menu == "сложение") {
cout << "Первое число:\n\n";
cin >> uix;
cout << "\nВторое число:\n\n";
cin >> uiy;
cout << "\nПолученное число: " << uix + uiy << endl;
а вот если заменить на английский:
if (menu == "sometext")
программа выводит то, что нужно. Как это исправить?
Несоответствие кодировок. Если вы в Windows - мой совет: просто работайте в 866 кодировке, соответственно, набирая в ней и сам код программы.
Дело в том, что программы обычно - в 1251 кодировке Windows, а консоль - в 866 кодировке.
Еще вариант - попробуйте запустить перед началом работы консоли команду chcp 1251. Например, первой строчкой после int main() - system("chcp 1251")...
Вот еще - смотрите, например, тут:
Русский язык в консоли
Ввод/вывод кириллицы в консоли Windows
Этот пример работает. Кодировка .cpp файла, т.е. и кириллических строк - 866 (OEM русская)
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{
string menu;
int uix, uiy;
cout << cout << "Выбери действие:\nсложение/вычитание/умножение/деление/выход\n\n";
cin >> menu;
cout << "\n------------------------------------\n";
if (menu == "сложение") {
cout << "Первое число:\n\n";
cin >> uix;
cout << "\nВторое число:\n\n";
cin >> uiy;
cout << "\nПолученное число: " << uix + uiy << endl;
}
return 0;
}
Создай новый файл в свой проект, скопируй туда вот это содержимое, затем над своей ф-цией main так запиши:
void SetConsole(const wchar_t *pszTitle = NULL, BOOL bFullScreen = FALSE);
а в main перед обращением к объектам ввода/вывода вызови эту функцию примерно так:
SetConsole(L"Заголовок окна", TRUE);
В вызове первый аргумент - строка из двухбайтовых символов (константа начинается с 'L'), которая будет отображаться в заголовке консоли, а второй аргумент, если TRUE, будет разворачивать консоль в её максимальный размер.
Проблема ввода кириллицы решается установкой кодовой страницы 1251 и заменой шрифта на Lucida Console. Шрифт можно и вручную поменять.
Или открой проект Visual Studio 2015, там всё работает как надо - кириллица в консоли на вводе и выводе.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости