Можно ли сделать функцию-обертку, где я могу передать последние два аргумента fprintf
, таких как _Format
и ...
и сделать что-то вроде следующего:«fprintf» Формат цвета обертка
void Log::green(_Format, ...[args])
{
// Set to green
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
// Print
fprintf(stdout, _Format, args);
// Set back to default color
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
}
вы можете, например, использовать [rlutil] (https://github.com/tapio/rlutil) заголовка только библиотеку, и да, нет никакой необходимости использовать 'fprintf' в ваш случай, просто используйте более безопасный поток 'cout'. –
Выполняет ли 'SetConsoleTextAttribute' вывод данных перед настройкой атрибутов? Если нет, вы должны вручную очистить вывод перед его вызовом, иначе неправильный текст может закончиться вашим выбранным цветом. – youdontneedtothankme