При использовании setlocale не выводится цветной текст C++

using namespace std;

int main() {


    // Коды цветов
    const char* colors[] = {
      "\u001B[31m", // Красный
      "\u001B[32m", // Зеленый
      "\u001B[33m", // Желтый
      "\u001B[34m", // Синий
      "\u001B[35m", // Маджента
      "\u001B[36m", // Голубой
    };

    // Печать радужного текста
    for (int i = 0; i < 6; i++) { // уменьшаем до 6
        cout << colors[i] << "Привет радуга" << endl;
    }

    // Сброс цвета
    cout << "\u001B[0m" << endl;

    return 0;
}

Выводится какие-то кракозябры:

╧ЁштхЄ Ёрфєур

╧ЁштхЄ Ёрфєур

╧ЁштхЄ Ёрфєур

╧ЁштхЄ Ёрфєур

╧ЁштхЄ Ёрфєур

╧ЁштхЄ Ёрфєур

А если добавить setlocale

using namespace std;

int main() { setlocale(LC_ALL, "ru_RU.UTF-8");

// Коды цветов
const char* colors[] = {
  "\u001B[31m", // Красный
  "\u001B[32m", // Зеленый
  "\u001B[33m", // Желтый
  "\u001B[34m", // Синий
  "\u001B[35m", // Маджента
  "\u001B[36m", // Голубой
};

// Печать радужного текста
for (int i = 0; i < 6; i++) { // уменьшаем до 6
    cout << colors[i] << "Привет радуга" << endl;
}

// Сброс цвета
cout << "\u001B[0m" << endl;

return 0;

}

Выводится просто пустота введите сюда описание изображения

то-есть текст как-бы выводится, но его почему-то не видно.

Почему так? И как это исправить ?


Ответы (0 шт):