Раскрашивает C++ win32 консоль

std::cout << "blblabla... [done]" << std::endl;

Действительно ли возможно сделать [done] быть в другом цвете, и возможно полужирные? Я использую Windows 7

18
задан Michael Mrozek 26 October 2010 в 08:48
поделиться

4 ответа

Да, вы просто отправляете стандартную escape-последовательность , например

    const char* green = "\033[0;32m";
    const char* white = "\033[0;37m";
    const char* red   = "\033[0;31m";
    double profit = round(someComplicatedThing());
    std::cout << (profit < 0 ? red : (profit > 0 ? green : white))
              << "Profit is " << profit << white << std::endl;

Вы также получаете жирный шрифт по сравнению с обычным, цветным фоном и т. Д. На странице Википедии по escape-коду ANSI есть подробности, в Bash-Prompt HOWTO есть примеры.

5
ответ дан 30 November 2019 в 08:38
поделиться

Да, вы можете использовать system (); функция для запуска команд с command.com, одна из которых - color. color a даст вам желаемый зеленый цвет. вы также можете увидеть другие цвета из параметра справки color /? . и для жирного шрифта вы можете использовать символы из таблицы ascii, чтобы сделать это. , например, "\ n" - это новая строка.

-1
ответ дан 30 November 2019 в 08:38
поделиться

Вы можете использовать эти крошечные библиотеки, которые я лично использовал до . Его очень легко использовать и интегрировать со стандартными потоками. Между прочим, он имеет четкую функциональность экрана консоли. Этот пример взят из кода, который я написал:

    std::cout << con::clr; // Clear the Intro Screen
// fg means the foreground
std::cout << std::endl << std::endl << con::fg_green
    << "\t\tFile Encrypted!";
3
ответ дан 30 November 2019 в 08:38
поделиться

Это зависит от того, какую ОС вы используете.

Если вы используете окна, вы хотите SetConsoleTextAttribute :

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);  // Get handle to standard output
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);

Вы также можете комбинировать значения.

Приложение может комбинировать константы переднего плана и фона для получения разных цветов. Например, следующая комбинация приводит к яркому голубому тексту на синем фоне.

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE

Затем вы можете использовать WriteFile или WriteConsole , чтобы фактически записать консоль.

21
ответ дан 30 November 2019 в 08:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: