Вопрос Помощь с выводом символов в консоль.

Забаненный
Статус
Оффлайн
Регистрация
1 Ноя 2023
Сообщения
106
Реакции[?]
3
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вообщем не давно я начал изучать язык c++ и у меня возникла проблема с выводом различных символов в консоль, по типу "█" я пытался кодировку ставить но я не могу понять какую надо кодировку или что надо еще делать.

То что я тестил:
int main()
{
/*
    setlocale(LC_ALL, "RU");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
*/

    SetConsoleTitle("Test");

    std::string pon = "████████╗███████╗░██████╗████████╗\n"
                      "╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝\n"
                      "░░░██║░░░█████╗░░╚█████╗░░░░██║░░░\n"
                      "░░░██║░░░██╔══╝░░░╚═══██╗░░░██║░░░\n"
                      "░░░██║░░░███████╗██████╔╝░░░██║░░░\n"
                      "░░░╚═╝░░░╚══════╝╚═════╝░░░░╚═╝░░░\n";



    std::cout << pon;

    system("pause");

    return 0;
}
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июн 2021
Сообщения
14
Реакции[?]
1
Поинты[?]
1K
У тебя тут UTF-16 символы. И есть два решения - писать через WriteConsoleW либо использовать сишный _setmode. Оба решения прикладываю
C++:
#include <iostream>
#include <Windows.h>

int main()
{
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    std::wstring pon = L"████████╗███████╗░██████╗████████╗\n"
                                 L"╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝\n"
                                 L"░░░██║░░░█████╗░░╚█████╗░░░░██║░░░\n"
                                 L"░░░██║░░░██╔══╝░░░╚═══██╗░░░██║░░░\n"
                                 L"░░░██║░░░███████╗██████╔╝░░░██║░░░\n"
                                 L"░░░╚═╝░░░╚══════╝╚═════╝░░░░╚═╝░░░\n";

    WriteConsoleW(hConsole, pon.c_str(), pon.length(), nullptr, nullptr);
    system("pause");
    return 0;
}
C++:
#include <iostream>
#include <io.h>
#include <fcntl.h>

int main()
{
    _setmode(_fileno(stdout), _O_U16TEXT);

    std::wstring pon = L"████████╗███████╗░██████╗████████╗\n"
                       L"╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝\n"
                       L"░░░██║░░░█████╗░░╚█████╗░░░░██║░░░\n"
                       L"░░░██║░░░██╔══╝░░░╚═══██╗░░░██║░░░\n"
                       L"░░░██║░░░███████╗██████╔╝░░░██║░░░\n"
                       L"░░░╚═╝░░░╚══════╝╚═════╝░░░░╚═╝░░░\n";

    wprintf(L"%s", pon.c_str());
    system("pause");
    return 0;
}
 
Сверху Снизу