Вывести в консоль текст заданного цвета - C (СИ)
Формулировка задачи:
Подскажите пожалуйста как можно реализовать цвет определенного участка текста в консольном си.
Например
cout<<"тест 1"; // обычный cout<<"тест 2"; // красный
Решение задачи: «Вывести в консоль текст заданного цвета»
textual
Листинг программы
HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO csbi; GetConsoleScreenBufferInfo (hstdout, & csbi); SetConsoleTextAttribute(hstdout,0x0F); // цветгде 0 это цвет закраски, а F сам цвет текста cout<<"Тест \n"; SetConsoleTextAttribute(hstdout, csbi.wAttributes);
Объяснение кода листинга программы
HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE);- Получение дескриптора стандартного вывода в консоль.CONSOLE_SCREEN_BUFFER_INFO csbi;- Объявление структурыCONSOLE_SCREEN_BUFFER_INFOдля хранения информации о буфере консоли.GetConsoleScreenBufferInfo (hstdout, & csbi);- Получение информации о буфере консоли.SetConsoleTextAttribute(hstdout,0x0F);- Установка цвета текста на белый (0x0F в шестнадцатеричной системе соответствует 15 в десятичной системе, что является суммой кодов цветов красного, зеленого и синего, которые в сумме дают белый цвет).cout<<Тест \n;- Вывод текстаТестс установленным цветом.SetConsoleTextAttribute(hstdout, csbi.wAttributes);- Восстановление исходного цвета текста.