Как поменять цвет консоли в c
Перейти к содержимому

Как поменять цвет консоли в c

  • автор:

Как изменить цвет для окна консоли 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(); только для символов и той части консоли, которая находится под ними.

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

Подскажите пожалуйста как поменять цвет фона в консоли, чтобы вместо чорного экрана сделать что-то повеселее?

Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Цвет шрифта и фона в консоли.
Знаю, это тема уже обсуждалась, но я новичок в программировании и ничего в предложенном ранее коде.

Задать цвет шрифта/фона консоли
Цвет задается перечислением ConsoleColor, а как можно иначе? например цыфирькой во всем диапазоне.

Цвет фона строки
Можно как-то сделать, чтоб при выводе строки в Borland C++ 3.1 у строки был фон например черного.

Выбор цвета шрифта и фона консоли
Всем привет, нужно сделать так чтобы можно было выбрать цвет шрифта и цвет консоли. У меня.

быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,666

Лучший ответ

Сообщение было отмечено как решение

Решение

В свойствах консоли посмотри.
Или вот.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#include #include using namespace std; enum ConsoleColor { Black = 0, Blue = 1, Green = 2, Cyan = 3, Red = 4, Magenta = 5, Brown = 6, LightGray = 7, DarkGray = 8, LightBlue = 9, LightGreen = 10, LightCyan = 11, LightRed = 12, LightMagenta = 13, Yellow = 14, White = 15 }; // устанавливает цвет текста и подложки в консоли void SetColor(int text, int background)  HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, (WORD)((background  4)  // устанавливает цвет текста и подложки в консоли void SetColor(int text, ConsoleColor/*int*/ background)  HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, (WORD)((background  4)  int main() { for (int i = 0; i  15; i++) { for (int j = 0; j  15; j++) { SetColor( i, Red); cout  " Hello. "; SetColor( 15, j); cout  " ["  i  "]["  j  "]\n"; } } system("PAUSE"); return 0; }

Регистрация: 12.09.2009
Сообщений: 25

Лучший ответ

Сообщение было отмечено как решение

Решение

Спасибо за ответ, но это немного не то что я искала.
Здесь фон меняеться только под буквами..а я хочу чтобы весь экран был однотонным и не черным.
Поскажите, пожалуйста, как сделать это.

Добавлено через 23 минуты
Оказалось все очень просто..
В глобальной области пишем строчку

const int NotUsed = system( "color 20" );

2 - значение цвета фона, 0 - значение цвета текста

Расшифровка цветов:
0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White

Цветовое оформление консольного вывода

Теперь несколько примеров. Все это можно опробовать, введя в консольном окне echo -e "текст примера" .

Ввод Результат
\x1b[31mTest\x1b[0m image
\x1b[37;43mTest\x1b[0m image
\x1b[4;35mTest\x1b[0m image

Обратите внимание, что во всех трех случаях после слова Test идет последовательность \x1b[0m, которая просто сбрасывает стиль оформления на стандартный.

Комплексный пример использования:

\x1b[1;31mСтрока\x1b[0m с
\x1b[4;35;42mразными\x1b[0m \x1b[34;45mстилями\x1b[0m
\x1b[1;33m
оформления\x1b[0m
image

Хорошая раскраска вывода часто значительно облегчает восприятие информации. Так что пробуйте и экспериментируйте.

P.S. Также об этом и некотором другом можно прочитать в man console_codes . Спасибо Riateche за подсказку.

Команда COLOR - установить цвет символов и фона консоли Windows

Команда COLOR задает цвет символов и цвет фона в окне консоли .

Формат командной строки:

COLOR [цвет фона][цвет текста]

Цвет задается шестнадцатеричной цифрой, Старший бит определяет яркость, а последующие биты - цвет :

Бит 0 - яркость
Бит 1 - красный ( R )
Бит 2 - зеленый ( G )
Бит 3 - синий ( B )

По умолчанию, используются белые буквы на черном фоне - цвет фона = 0 , цвет символов =7. Значения битов задают комбинацию цветов, так например, для желтого цвета используется установка битов 1 и 2 ( Красный и Зеленый). Команда для установки яркого синего цвета ( 9 ) на желтом фоне ( 6 ) : color 69

То же, но на ярком желтом фоне:

color F0 - черные символы на ярком белом фоне, color 0F - наоборот, белые яркие символы на черном фоне. .

Каждая цифра может иметь следующие значения:

Если в команде COLOR задана только одна цифра, то она определяет цвет символов на черном фоне (значение цвета фона воспринимается как 0 ):

COLOR 1 - синие буквы на черном фоне, как в команде COLOR 01

Если аргумент не указан, команда восстанавливает исходный набор цветов, каким он был на момент запуска CMD.EXE. Этот набор определяется из значения ключа /T, если он был задан при запуске интерпретатора CMD.EXE, или из значения параметров реестра, определяющих пользовательские настройки для интерпретатора команд:

HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft \Command Processor\ DefaultColor - для всех пользователей.

HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor\ DefaultColor - для текущего пользователя. Значения параметров из раздела пользователя более приоритетны, по сравнению с параметрами раздела HKEY_LOCAL_MACHINE

Если параметр DefaultColor имеет значение по умолчанию ( REG_DWORD 0x00000000 ), то цветовой набор определяется значением параметра

HKEY_CURRENT_USER\ Console\ ScreenColors .

Команда COLOR возвращает значение кода ошибки ERRORLEVEL равный 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона, например - COLOR 00 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *