Задать вопрос
kpa6uu
@kpa6uu
Программист Талибана [Пыхерский Алибаба]

Почему в VC++ криво выводится кириллица?

Здравствуйте.
Проблема в том, что кириллица криво выводится.
Например:
#include <iostream>
#include <string>
#include <locale.h>

using namespace std;

class employee{
private:
	string name;
	long number;
public:
	void getdata();
	void putdata();
};

int main(){
	setlocale(LC_ALL, "Russian");
	employee em1, em2;
	em1.getdata();
	em2.getdata();
	em1.putdata();
	em2.putdata();
	system("pause");
	return 0;
}

void employee::getdata(){
	cout << "Введите имя: "; cin >> name;
	cout << "Введите номер: "; cin >> number;
}

void employee::putdata(){
	cout << name   << endl
		 << number << endl;
}

52f3b69e84e3487c998f253b4ff45ce2.png
  • Вопрос задан
  • 380 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
mezastel
@mezastel
Финансовая математика, программирование
Используем SetConsoleOutputCP и будет счастье.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Vestail
@Vestail
Software Engineer
Из за того что в cmd старинная кодировка. Лучший выход - использовать только английский. Все равно дальше учебы консольные проекты вы не будете использовать.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Исправить консоль, задать для консоли нормальные шрифты. Использовать conemu в качестве стандартной консоли.

Проблема - с кодировкой.
Ответ написан
Комментировать
setlocale(0, "");
Ответ написан
Комментировать
@roodz
#if defined(_WIN32) || defined (_WIN64)
    #include <windows.h>
    #define OS_WIN 1
#endif

int main()
{
    #ifdef OS_WIN
        SetConsoleOutputCP(1251);
        SetConsoleCP(1251);
    #else
        setlocale(LC_CTYPE, "Russian");
    #endif

    // ...

    return 0;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы