@DobriyParen

Как исправить локализацию в классе без параметров?

локализацию в классе без параметров не применяется хотя я добавил в main setlocale

вот параметры которые вводил:
Введите название фирмы: айти
Введите адрес: будапешт 21
Укажите число сотрудников: 3
Введите годовой доход: 1000
Введите отрасль: айти
Является ли фирма публичной (1 - да, 0 - нет): 1

вот результат:
Название фирмы: cвЁ
Адрес: Ўг¤ Ї?ив 21
Количество сотрудников: 3
Годовой доход: 1000.00
Отрасль: cвЁ
Общественная: Да
#include <iostream>
#include <string>
#include <locale>

class Firm {
private:

    std::string name;
    std::string address;
    int worker;
    double money;
    std::string industry;
    bool isPublic;

public:
    // Конструктор без параметров
    // Конструктор без параметров
    Firm() : name(""), address(""), worker(0), money(0), industry(""), isPublic(false) {}


    // Конструктор с параметрами
    Firm(const std::string& name, const std::string& address, int worker, double money, const std::string& industry, bool isPublic)
        : name(name), address(address), worker(worker), money(money), industry(industry), isPublic(isPublic) {}

    // Деструктор
    ~Firm() {}

    // Методы для чтения данных в объект и вывода из объекта
    void ReadData() {
        std::cout << "Введите название фирмы: ";
        std::getline(std::cin, name);
        std::cout << "Введите адрес: ";
        std::getline(std::cin, address);
        std::cout << "Укажите число сотрудников: ";
        std::cin >> worker;
        std::cin.ignore(); // Очищаем символ новой строки из буфера ввода
        std::cout << "Введите годовой доход: ";
        std::cin >> money;
        std::cin.ignore(); // Очищаем символ новой строки из буфера ввода
        std::cout << "Введите отрасль: ";
        std::getline(std::cin, industry);
        std::cout << "Является ли фирма публичной (1 – да, 0 – нет): " << std::endl; // Добавляем std::endl
        std::cin >> isPublic;
    }



    void DisplayData() {
        std::cout << "---------------------------------------" << std::endl;
        std::cout << "Название фирмы: " << name << std::endl;
        std::cout << "Адрес: " << address << std::endl;
        std::cout << "Количество сотрудников: " << worker << std::endl;
        std::cout << "Годовой доход: " << money << std::endl;
        std::cout << "Отрасль: " << industry << std::endl;
        std::cout << "Общественная: " << (isPublic ? "Да" : "Нет") << std::endl;
        std::cout << "---------------------------------------" << std::endl;
    }


    // Конструктор копирования
    Firm(const Firm& other) {
        name = other.name;
        address = other.address;
        worker = other.worker;
        money = other.money;
        industry = other.industry;
        isPublic = other.isPublic;
    }
};

int main() {
    std::setlocale(LC_ALL, "ru");
    std::locale::global(std::locale("ru"));
    Firm firm1; // Использование конструктора без параметров
    firm1.ReadData();
    std::cout << "Результат конструктора без параметров :" << std::endl;
    firm1.DisplayData();

    std::cout << "Результат конструктора с параметрами:" << std::endl;
    Firm firm2("ABC Inc.", "123 Main St", 100, 5000000.0, "Technology", true); // Использование конструктора с параметрами
    firm2.DisplayData();

    // Использование конструктора копирования
    std::cout << "Результат конструктора копирования :" << std::endl;
    Firm firm3 = firm2;
    firm3.DisplayData();

    return 0;
}
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
alex1951
@alex1951
"умных преподавателей слушал я невнимательно..."
Добавьте SetConsoleCP(1251); и будет вам счастье :)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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