Top.Mail.Ru
Ответы

Как в VS code на С++ сделать ввод русских слов например в массив, чтобы они сохранялись?

Есть структура с параметрами
string name
int age
Пользователь вводит Артём 19
Но при выводе получается {, 19}
Русское слово не добавляется, как исправить?

По дате
По рейтингу
Аватар пользователя
Знаток
4мес

дай пожалуйста свой код, ибо я не могу понять ошибку. или можешь сравнить с простым примером:

1234567891011121314151617181920212223242526
 #include <locale>
#include <Windows.h>
#include <iostream>

struct User { 
    std::string name; 
    unsigned int age; 
}; 
 
int main() { 
    setlocale(LC_ALL, "ru"); 
    SetConsoleCP(1251);
 
    User new_user; 
    std::cout << "Введите имя и возраст: "; 
 
    std::cin >> new_user.name >> new_user.age; 
 
    if (std::cin.fail()) { // если вместо возраста был введен символ 
        std::cerr << "Некорректный ввод!" << std::endl; 
    } else { 
        std::cout << "Данные пользователя: " << new_user.name << ", " << new_user.age << std::endl; 
    } 
 
    return 0; 
} 
  • тут "setlocale" и "SetConsoleCP" позволяют коррректно обрабатывать кириллицу

Аватар пользователя
Оракул
4мес

setlocale(LC_ALL,"Rus"); - инструкция везде может вставляться

Аватар пользователя
Мастер
4мес
1234567891011121314151617
 #include <iostream> 
#include <locale> 
using namespace std; 
 
int main() { 
    setlocale(LC_ALL, ""); // Включаем поддержку русского языка 
 
    string name; 
    int age; 
 
    cout << "Введите имя и возраст: "; 
    cin >> name >> age; 
 
    cout << "Вы ввели: " << name << ", " << age << endl; 
    return 0; 
} 
 

Проверь, что файл сохранён в UTF-8
Запускай через cmd или PowerShell