0
#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 Answers2

0

Что за новая кодировка 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 ?

Eugene X
  • 3,238
0

Можно использовать следующий вариант (Лучше подключать в самом начале функции main):

system("chcp 1251");
system("cls");

После выполнения первой строчки в консоль будет выведено: "Текущая кодовая страница: 1251".

Второй строчкой очищаем консоль (чтоб избавиться от той фразы).

Ну и для справочки: Windows-1251

Artyomka
  • 145