Форум программистов, компьютерный форум CyberForum.ru

Изменение цвета текста и фона при консольном выводе - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 278, средняя оценка - 4.72
Infinum
1 / 1 / 0
Регистрация: 04.09.2009
Сообщений: 5
25.09.2009, 10:54     Изменение цвета текста и фона при консольном выводе #1
Всем привет. Помогите решить мою проблему. Как менять цвет текста и фона при консольном выводе. Чё-то конкретного примера я не нашёл. Не могли бы Вы направить меня на сайт, или написать сами програмку типа
красный синий зелёный .....
И ещё. Надеюсь, что можно просто указать цвет определённого текста, как в HTML тегах, типа просто заключить его в тег, или там
C++
1
cout << "\??(какой-то символ) типа зелёный \??(какой-то символ) типа синий";
Я так думаю, что у этой простенькой проблемы есть простое решение.
Если надо подключить какие-нить файлы, напишите какие, пожалуйста. А лучше простенькую программу. Я там сам разберусь. Заранее большое спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
25.09.2009, 10:57     Изменение цвета текста и фона при консольном выводе #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
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
#include<windows.h>
enum ConsoleColor
{
        Black         = 0,
        Blue          = 1,
        Green         = 2,
        Cyan          = 3,
        Red           = 4,
        Magenta       = 5,
        Brown         = 6,
        LightGray     = 7,
       &nbsp;DarkGray      = 8,
        LightBlue     = 9,
        LightGreen    = 10,
        LightCyan     = 11,
        LightRed      = 12,
        LightMagenta  = 13,
        Yellow        = 14,
        White         = 15
};
 
void SetColor(ConsoleColor text, ConsoleColor background)
{
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
int main()
{
   SetColor(Blue,Black); 
   cout << "H1"; //цвет текста голубой цвет фона черный
}
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
25.09.2009, 10:58     Изменение цвета текста и фона при консольном выводе #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот что у меня есть. Может подойдет?
C++
1
2
3
4
5
6
7
8
9
#include <Windows.h>
#include <iostream.h>
 
void main()
{
    HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsoleHandle, FOREGROUND_BLUE | BACKGROUND_RED);
    cout << "Hello world!" << endl;
}
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
25.09.2009, 11:17     Изменение цвета текста и фона при консольном выводе #4
в моем решении цвет фона меняется исключительно за тем текстом который выводиться. это может помочь если нужно сделать линию одного цвета. тогда надо поставить цвет текста и фона одинаковый и вывести:
C++
1
cout << "aaaaaaaa";
и будет красивая линия).
как сделать цвет фона во всей консоли не знаю.
QWAN
56 / 55 / 1
Регистрация: 02.09.2008
Сообщений: 181
25.09.2009, 11:26     Изменение цвета текста и фона при консольном выводе #5
Посмотри здесь
http://www.vsokovikov.narod.ru/New_M...trib_char_cons
http://www.vsokovikov.narod.ru/New_M...tattribute.htm
если полистать этот сайт, там есть и примеры
Infinum
1 / 1 / 0
Регистрация: 04.09.2009
Сообщений: 5
25.09.2009, 12:06  [ТС]     Изменение цвета текста и фона при консольном выводе #6
Короче, получилось вот так:

C++
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
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
using namespace std;
 
void SetColor(int text, int background)
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
int main()
{
   for (int i = 0; i < 15; i++)
   {
      for (int j = 0; j < 15; j++)
      {
         SetColor( i, j);
         cout << "       Hello!!!!      ";
         SetColor( 15, 0);
         cout << "   [" << i << "][" << j << "]\n";
      }
   }
   system("PAUSE");
   return 0;
}
Всем ОГРОМНОЕ СПАСИБО!!!
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
25.09.2009, 12:28     Изменение цвета текста и фона при консольном выводе #7
я бы ещё перегрузку добавил, чтобы и int и ConsoleColor пользоваться
типа так
C++
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
//#include "stdafx.h"
#include <iostream>
#include <Windows.h>
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) | text));
}
 
void SetColor(int text, ConsoleColor background)
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2014, 18:33     Изменение цвета текста и фона при консольном выводе
Еще ссылки по теме:

C++ Изменение цвета букв и фона в консоле
C++ Изменение цвета текста в консоли
Сымитировать табуляцию при выводе текста C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
intern
 Аватар для intern
15 / 15 / 6
Регистрация: 30.03.2014
Сообщений: 67
Завершенные тесты: 1
15.06.2014, 18:33     Изменение цвета текста и фона при консольном выводе #8
C++
1
SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
Почему используется побитовый сдвиг именно на 4?
Yandex
Объявления
15.06.2014, 18:33     Изменение цвета текста и фона при консольном выводе
Ответ Создать тему
Опции темы

Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru