Как изменить цвет для окна консоли c++
Внимание! Представленные ниже способы подходят только для Windows систем! Для Linux используйте библиотеку ncurses .
Можно менять цвет фона окна и символов без дополнительных библиотек, простой функцией system() . Достаточно написать, например, system(«color F0») и будет установлен белый фон (F) и чёрный текст (0). Можно писать и наоборот, например: system(«color 3F»); установит голубой фон и белый текст.
- 0 — черный
- 1 — синий
- 2 — зеленый
- 3 — голубой
- 4 — красный
- 5 — лиловый
- 6 — желтый
- 7 — белый
- 8 — серый
- 9 — свело-синий
- A — светло-зеленый
- B — светло-голубой
- С — светло-красный
- E — светло-желтый
- F — ярко-белый
Можно использовать функцию SetConsoleTextAttribute() из Windows.h:
HANDLE h; h = GetStdHandle(STD_OUTPUT_HANDLE); //получаем наше окно, в котором нужно изменить цвет
И установим жёлтый цвет на зелёном фоне:
SetConsoleTextAttribute(h, (((2
Что же это за страшная функция? Если кратко: число смещается на 4 бита влево и объединяется со вторым в результате логического ИЛИ. Эти действия объединят числа, чтобы функция установила нужный цвет и фон. Если интересно, можно взять результат этих операций (в данном случае 46) и скормить их функции:
SetConsoleTextAttribute(h, 46);
И вы получите такой же результат. Но настраивать гораздо удобнее по двум числа (первая отвечает за фон, вторая за текст).
Вот список цветов для этой функции:
- Чёрный - 0
- Синий - 1
- Зелёный - 2
- Голубой - 3
- Красный - 4
- Пурпурный - 5
- Коричневый - 6
- Светло-серый - 7
- Тёмно-серый - 8
- Светло-синий - 9
- Светло-зелёный - 10
- Светло-голубой - 11
- Светло-красный- 12
- Светло-пурпурный - 13
- Жёлтый - 14
- Белый - 15
Внимание! Функция system("color . ") устанавливает цвет для всей консоли и всех символов, а SetConsoleTextAttribute(); только для символов и той части консоли, которая находится под ними.
color
Изменяет цвет переднего плана и фона в окне командной строки текущего сеанса. При использовании без параметров цвет восстанавливает окно командной строки по умолчанию для переднего плана и фона.
Синтаксис
color [attr]
Параметры
Параметр | Описание |
---|---|
attr | Задает атрибут цвета выходных данных консоли. |
/? | Отображение справки в командной строке. |
В следующей таблице перечислены допустимые шестнадцатеричные цифры, которые можно использовать в качестве значений: attr
Значение | Цвет |
---|---|
0 | Черный |
1 | Синий |
2 | Зеленый |
3 | Темно-бирюзовая |
4 | Красный |
5 | Лиловая |
6 | Желтый |
7 | Белый |
8 | Серый |
9 | Светло-синий |
a | Светло-зеленый |
б | Легкий аква |
c | Светло-красный |
d | Светло-фиолетовый |
e | Светло-желтый |
f | Ярко-белый |
Замечания
- Можно указать одну или две шестнадцатеричные цифры. Первый используется в качестве цвета переднего плана, а второй используется в качестве цвета фона. Если указать две шестнадцатеричные цифры, не используйте пробелы между ними.
- Если указать только одну шестнадцатеричную цифру, соответствующий цвет используется в качестве цвета переднего плана, а цвет фона имеет значение по умолчанию.
- Чтобы задать цвет окна командной строки по умолчанию, выберите верхний левый угол окна командной строки, выберите вкладку "Цвета", а затем выберите цвета, которые вы хотите использовать для фона экрана и экрана.
- Если указать одно и то же значение для двух шестнадцатеричных цифр, для параметра ERRORLEVEL задано 1 значение, и изменения не изменяются на переднем плане или цвете фона.
Примеры
Чтобы изменить цвет фона окна командной строки на серый и цвет переднего плана на красный, введите:
color 84
Чтобы изменить цвет окна командной строки переднего плана на светло-желтый, введите следующее:
color e
В этом примере для фона задан цвет по умолчанию, так как указана только одна шестнадцатеричная цифра.
Дополнительные ссылки
Как изменить цвет для окна консоли c++
Внимание! Представленные ниже способы подходят только для Windows систем! Для Linux используйте библиотеку ncurses .
Можно менять цвет фона окна и символов без дополнительных библиотек, простой функцией system() . Достаточно написать, например, system("color F0") и будет установлен белый фон (F) и чёрный текст (0). Можно писать и наоборот, например: system("color 3F"); установит голубой фон и белый текст.
- 0 — черный
- 1 — синий
- 2 — зеленый
- 3 — голубой
- 4 — красный
- 5 — лиловый
- 6 — желтый
- 7 — белый
- 8 — серый
- 9 — свело-синий
- A — светло-зеленый
- B — светло-голубой
- С — светло-красный
- E — светло-желтый
- F — ярко-белый
Можно использовать функцию SetConsoleTextAttribute() из Windows.h:
HANDLE h; h = GetStdHandle(STD_OUTPUT_HANDLE); //получаем наше окно, в котором нужно изменить цвет
И установим жёлтый цвет на зелёном фоне:
SetConsoleTextAttribute(h, (((2
Что же это за страшная функция? Если кратко: число смещается на 4 бита влево и объединяется со вторым в результате логического ИЛИ. Эти действия объединят числа, чтобы функция установила нужный цвет и фон. Если интересно, можно взять результат этих операций (в данном случае 46) и скормить их функции:
SetConsoleTextAttribute(h, 46);
И вы получите такой же результат. Но настраивать гораздо удобнее по двум числа (первая отвечает за фон, вторая за текст).
Вот список цветов для этой функции:
- Чёрный - 0
- Синий - 1
- Зелёный - 2
- Голубой - 3
- Красный - 4
- Пурпурный - 5
- Коричневый - 6
- Светло-серый - 7
- Тёмно-серый - 8
- Светло-синий - 9
- Светло-зелёный - 10
- Светло-голубой - 11
- Светло-красный- 12
- Светло-пурпурный - 13
- Жёлтый - 14
- Белый - 15
Внимание! Функция system("color . ") устанавливает цвет для всей консоли и всех символов, а SetConsoleTextAttribute(); только для символов и той части консоли, которая находится под ними.
Цвет текста в консоли
Цвет текста в консоли, задний фон текста, общий фон. Как это можно сделать через printf? или же другие функции? Помогите!
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как поменять цвет текста консоли на любой цвет из RGB цветов
Цвет консоли можно поменять используя только 16 встроенных цветов или можно использовать комбинации.
Цвет текста консоли
Товарищи, прошу помочь вот с таким делом: Заинтересовался я тем, как выводить в консоль текст.
Цвет текста в консоли
Например есть текст "ABCDEFG" и хочу его вывести в консоль в таком виде: ABCDEFG Как реализовать.
Цвет текста в консоли
Можно ли вывести в консоль разноцветный текст без использования WinAPI? Например, TEST