Подтвердить что ты не робот

Цвета в консоли С++ win32

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

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

4b9b3361

Ответ 1

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

Если вы используете окна, вы хотите 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 на самом деле напишите консоль.

Ответ 2

Да, вы просто отправляете стандартную 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 содержит примеры.

Ответ 3

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

    std::cout << con::clr; // Clear the Intro Screen
// fg means the foreground
std::cout << std::endl << std::endl << con::fg_green
    << "\t\tFile Encrypted!";

Ответ 4

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

Ответ 5

Быстрый способ: включить #include <stdlib.h>, а затем добавить system( "color 5B" ); перед текстом, который вы хотите. Так оно будет выглядеть так:

#include <stdlib.h>
std::cout << "blblabla..."<<std::endl;
system( "color 5B" );
std::cout<< "[done]" << std::endl;

Вы можете попробовать разные цвета: 1A, 2B, 3C, 4F...