std::cout << "blblabla... [done]" << std::endl;
Действительно ли возможно сделать [done]
быть в другом цвете, и возможно полужирные? Я использую Windows 7
Да, вы просто отправляете стандартную 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 есть примеры.
Да, вы можете использовать system (); функция для запуска команд с command.com, одна из которых - color. color a даст вам желаемый зеленый цвет. вы также можете увидеть другие цвета из параметра справки color /? . и для жирного шрифта вы можете использовать символы из таблицы ascii, чтобы сделать это. , например, "\ n" - это новая строка.
Вы можете использовать эти крошечные библиотеки, которые я лично использовал до . Его очень легко использовать и интегрировать со стандартными потоками. Между прочим, он имеет четкую функциональность экрана консоли. Этот пример взят из кода, который я написал:
std::cout << con::clr; // Clear the Intro Screen
// fg means the foreground
std::cout << std::endl << std::endl << con::fg_green
<< "\t\tFile Encrypted!";
Это зависит от того, какую ОС вы используете.
Если вы используете окна, вы хотите 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 , чтобы фактически записать консоль.