@denywho
Начинающий программист

Почему код выводит пустоту вместо строк ( Проблема с русским языком )?

Ввожу название книги , и автора на русском, а программа не выводит это.
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

struct book
{
    string title, author;
    int number, year;
};
int main()
{
    SetConsoleCP(65001);
    SetConsoleOutputCP(65001);
    book bks;
    cout << "Введите название книги: ";
    getline(cin, bks.title);
    cout << "Введите автора книги: ";
    getline(cin, bks.author);
    cout << "Введите количество страниц в книге: ";
    cin >> bks.number;
    cout << "Введите год издания книги: ";
    cin >> bks.year;
    cout << "Название книги\t" << "Автор\t" << "Количество страниц\t" << "Год издания\n";
    cout << bks.title << "\t" << bks.author << "\t" << bks.number << "\t" << bks.year;
    return 0;
}
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 2
@JoJikRe
#include
#include
#include
using namespace std;

struct book
{
string title, author;
int number, year;
};
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
book bks;
cout << "Введите название книги: ";
getline(cin, bks.title);
cout << "Введите автора книги: ";
getline(cin, bks.author);
cout << "Введите количество страниц в книге: ";
cin >> bks.number;
cout << "Введите год издания книги: ";
cin >> bks.year;
cout << "Название книги\t" << "Автор\t" << "Количество страниц\t" << "Год издания\n";
cout << bks.title << "\t" << bks.author << "\t" << bks.number << "\t" << bks.year;
return 0;
}
Попробуй так
Ответ написан
Под Windows надо так
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "");
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы