Как сделать, чтобы русский язык отображался корректно
#include <iostream>
#include
<locale.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
char surName[100];
cout<<"Введите Фамилию и Имя\n";
cin.getline(surName, 516) >>surName;//ввод фамилии и имени
char groupName[100];
cout << "Введите группу\n";
cin.getline(groupName, 516) >> groupName;//ввод группы
cout << "Студент" << ":" << surName<<" " << "Группа" << ":" << groupName<< endl;
return 0;
}
При добавлении setlocale(LC_ALL, "RUS"); становится нормальным текст написанный в " ", но ломается введённый, при удалении setlocale(LC_ALL, "RUS"); наблюдается обратная картина
Ответы (2 шт):
Что за новая кодировка RUS?
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale?view=msvc-170
Русские кодировки ru-RU.CP1251 или ru-RU.UTF-8
Аналогично для Windows:
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
становится нормальным текст написанный в " ", но ломается введённый
А какая у тебя кодировка самого файла *.c ?
Можно использовать следующий вариант (Лучше подключать в самом начале функции main):
system("chcp 1251");
system("cls");
После выполнения первой строчки в консоль будет выведено: "Текущая кодовая страница: 1251".
Второй строчкой очищаем консоль (чтоб избавиться от той фразы).
Ну и для справочки: Windows-1251