Загрузка...

Как пофиксить ру язык в c++?

Тема в разделе C/C++ создана пользователем dvbsh 25 апр 2024. 325 просмотров

  1. dvbsh
    dvbsh Автор темы 25 апр 2024 Разработка t.me/dvbsh_projects 1174 13 авг 2018
    есть такой код:

    C
    #include <iostream>
    #include "windows.h"
    #include <fstream>
    #include <vector>
    #include <string>

    #ifdef _WIN32
    #define CLEAR_SCREEN "cls"
    #else
    #define CLEAR_SCREEN "clear"
    #endif


    using namespace std;

    struct Answer {
    string name;
    vector<string> responses;
    };

    int main() {

    setlocale(LC_ALL, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    int numQuestions, numParticipants;

    cout << "Введите количество задаваемых вопросов: ";
    cin >> numQuestions;
    cout << "\n";

    cin.ignore();

    vector<string> questions(numQuestions);

    for (int i = 0; i < numQuestions; ++i) {
    cout << "Введите вопрос #" << i + 1 << ": ";
    getline(cin, questions[i]);
    }

    cout << "\n" << "Введите количество участников опроса: ";
    cin >> numParticipants;

    cin.ignore();

    vector<Answer> participants(numParticipants);

    for (int i = 0; i < numParticipants; ++i) {
    system(CLEAR_SCREEN);

    cout << "\nВведите ваше имя: ";
    getline(cin, participants[i].name);

    participants[i].responses.resize(numQuestions);

    for (int j = 0; j < numQuestions; ++j) {
    cout << "\n\n" << questions[j] << "\n- ";
    getline(cin, participants[i].responses[j]);
    }
    }

    system(CLEAR_SCREEN);
    cout << "\nНажмите Enter, чтобы окончить тестирование..." << endl;
    cin.get();
    system(CLEAR_SCREEN);

    cout << "\n\nВопросы:\n";
    for (int i = 0; i < numQuestions; ++i) {
    cout << i + 1 << ". " << questions[i] << endl;
    }
    cout << "\n\nУчастники | Ответы:\n";
    for (int i = 0; i < numParticipants; ++i) {
    cout << "\n\nИмя: " << participants[i].name << "\n" << endl;
    for (int j = 0; j < numQuestions; ++j) {
    cout << questions[j] << "\n -" << participants[i].responses[j] << endl;
    }
    }

    ofstream outFile("results.txt");
    if (outFile.is_open()) {
    outFile << "Результаты тестирования:\n\n";

    outFile << "Вопросы:\n";
    for (int i = 0; i < numQuestions; ++i) {
    outFile << i + 1 << ". " << questions[i] << endl;
    }

    outFile << "\n\nИтоги:\n";
    for (int i = 0; i < numParticipants; ++i) {
    outFile << "\n\n" << participants[i].name << endl;
    for (int j = 0; j < numQuestions; ++j) {
    outFile << j + 1 << ". " << participants[i].responses[j] << endl;
    }
    }
    outFile.close();
    cout << "\n\nРезультаты были успешно сохранены в файле 'results.txt'." << endl;
    } else {
    cout << "Произошла ошибка при сохранении результатов." << endl;
    }

    return 0;
    }
    еле как пофиксил отображение русского языка, как появилась другая проблема: перестали отображаться переменные с русскими символами. в этом примере, имена и вопросы.

    [IMG]
    [IMG]
    [IMG]
    [IMG]

    и вот с англ:
    [IMG]
    [IMG]
    [IMG]
    [IMG]
     
  2. mentaldora
    mentaldora 25 апр 2024 творчество сильнее выгоды 10 349 9 дек 2020
    setlocale(LC_ALL, "RU"); не ?
     
  3. dvbsh
    dvbsh Автор темы 25 апр 2024 Разработка t.me/dvbsh_projects 1174 13 авг 2018
    сыновьям гугла впадлу даже в код заглянуть
     
    1. Cerberus
      dvbsh, друг, ты задаешь элементарный вопрос - люди за тебя гуглят и дают ответ. Не нравится ответ - не спрашивай на форуме
    2. mentaldora
      Cerberus, Эээ я не гуглил я вспомнил потому что на степике курс проходил по плюсам
    3. dvbsh Автор темы
      Cerberus, "элементарный вопрос", на который нигде (практически???) нет правильного ответа) C++ не адаптирован под подобную хуйню, и нужно извиваться во все стороны света, чтобы всё работало корректно. setlocale ваш нихуя не помогает, он фиксит ТОЛЬКО вывод. мне ТАКЖЕ нужно, чтобы данные на русском языке корректно сохранялись в переменные. я, конечно, был бы рад любой попытке мне помочь, но когда человек, имеющий мало чего общего с программированием, а особенно на плюсах, просто берёт первый ответ с гугла - это высокомерие и кринж
      25 апр 2024 Изменено
Загрузка...
Top