На данный вопрос уже ответили:
При вводе в 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, там всё работает как надо - кириллица в консоли на вводе и выводе.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый день, помогите разобратьсяПри выводе на экран файла в обратном порядке появляются лишние переводы строки