Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 12.02.2017
Сообщений: 55
1

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

07.05.2017, 03:03. Показов 6829. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемое сообщество!
Подскажите, пожалуйста, есть ли возможность установить цвет для определенных символов в консоли (не при выводе, а при инициализации переменных)?

Можно как-то установить цвета тут
C++
1
char a = 'A', b = 'B';
чтобы потом при выводе этих символов они печатались установленным цветом?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2017, 03:03
Ответы с готовыми решениями:

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

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

Размер шрифта в консоли
Как програмно настроить размер шрифта wxDev-C++

Изменение шрифта в консоли
Подскажите, пожалуйста, можно ли изменить размер шрифта частично? В консольном приложении...

11
4 / 3 / 6
Регистрация: 13.11.2015
Сообщений: 217
07.05.2017, 04:05 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#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 SetTextColorFirst(ConsoleColor text, ConsoleColor background = Black)
{
    HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsoleHandle, (WORD)((background << 4) | text));
}
void SRTC(int text = 0, int background = 0)
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    int r_idx = rand() % 16 + 1;
 
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | r_idx));
}
 
 
 
void main()
{
    setlocale(LC_ALL, "Russian");
    
    //
    SetTextColorFirst(Red); cout << "К"; SRTC();
    cout << "а"; SRTC(); cout << "ж"; SRTC(); cout << "д"; SRTC(); cout << "ы"; SRTC(); cout << "й" << endl;
 
    SetTextColorFirst(Yellow); cout << "О";
    SRTC(); cout << "х"; SRTC(); cout << "о"; SRTC(); cout << "т"; SRTC(); cout << "н"; SRTC(); cout << "и"; SRTC(); cout << "к" << endl;
 
    SetTextColorFirst(Yellow); cout << "Ж";
    SRTC(); cout << "е"; SRTC(); cout << "л"; SRTC(); cout << "а"; SRTC(); cout << "е"; SRTC(); cout << "т" << endl;
 
    SetTextColorFirst(Green); cout << "З";
    SRTC(); cout << "н"; SRTC(); cout << "а"; SRTC(); cout << "т"; SRTC(); cout << "ь" << endl;
 
    SetTextColorFirst(Cyan); cout << "Г";
    SRTC(); cout << "д"; SRTC(); cout << "е" << endl;
 
    SetTextColorFirst(Blue); cout << "С";
    SRTC(); cout << "и"; SRTC(); cout << "д"; SRTC(); cout << "и"; SRTC(); cout << "т" << endl;
 
    SetTextColorFirst(Magenta); cout << "Ф";
    SRTC(); cout << "а"; SRTC(); cout << "з"; SRTC(); cout << "а"; SRTC(); cout << "н" << endl;
 
    SetTextColorFirst(White); cout << "Каждый Охотник Желает Знать Где Сидит Фазан\n----------------"<< endl;
    system("PAUSE");
}
1
0 / 0 / 1
Регистрация: 12.02.2017
Сообщений: 55
07.05.2017, 07:17  [ТС] 3
Vasiliyy, большое спасибо за вашу подсказку, но я имела в виду другое. В вашем примере устанавливается цвет первого символа слова, а для следующих символов цвет выбирается случайным образом. И делается это при выводе символов на экран.

Но можно ли при объявлении или инициализации символьной переменной установить цвет так, чтобы потом, сколько бы раз не выводился этот символ на экран - печатался бы установленным цветом?
0
7794 / 6560 / 2985
Регистрация: 14.04.2014
Сообщений: 28,681
07.05.2017, 08:12 4
Ну установи нужный цвет и не меняй.
0
0 / 0 / 1
Регистрация: 12.02.2017
Сообщений: 55
07.05.2017, 09:05  [ТС] 5
nmcf], возможно, я чего-то не понимаю - объясните мне пожалуйста.

Предположим у меня есть переменная
C++
1
char a = 'A'
. Можно ли сделать так, чтобы во всех местах программы, где она будет появляться (в том числе и в результате работы функций и действий пользователя), она печаталась красным цветом? При условии, что неизвестно заранее, где именно она будет выводиться.

То есть сделать так не получится:
C++
1
2
3
4
char a = 'A';
SetColor(Red, Black);
cout << a << endl;
SetColor(White, Black);
поскольку неизвестно заранее, где переменная появится.

Написала тестовый кусок кода, чтобы показать, что я имею в виду:

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
#include <iostream>
#include <windows.h>
using namespace std;
enum Color { Black = 0, Blue, Green, Cyan, Red, Magenta, Brown, LightGray, DarkGray, LightBlue, LightGreen, LightCyan, LightRed, LightMagenta, Yellow, White };
void SetColor(int text, int background)
{
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
char testFunc(int N)//Можно ли в этой функции установить цвет для а и для b?
{
    char a = 'A', b = 'B';
    if (N % 3 == 0 || N % 5 == 0)
    {
        return a;
    }
    else return b;
}
 
void main()
{
    cout << testFunc(15) << endl;
    cout << testFunc(13) << endl;
}
Код только для примера (и именно тут можно было бы при выводе цвет поменять).
Вопрос в другом - можно ли установить цвет для возвращаемых значений в функции testFunc?
0
7794 / 6560 / 2985
Регистрация: 14.04.2014
Сообщений: 28,681
07.05.2017, 09:08 6
Ну сделай функцию вывода строки, которая будет проверять наличие буквы 'A' и менять цвет.
1
0 / 0 / 1
Регистрация: 12.02.2017
Сообщений: 55
07.05.2017, 09:28  [ТС] 7
Спасибо за идею, попробую сделать.

Добавлено через 18 минут
Наверное это решение не совсем мне подходит. Мне ведь нужно не буквам А (условно) цвет поменять, а только тем, которые будут появляться в результате вызова переменной а.
0
7794 / 6560 / 2985
Регистрация: 14.04.2014
Сообщений: 28,681
07.05.2017, 10:40 8
При чём тут переменная? Меняй по месту.
0
0 / 0 / 1
Регистрация: 12.02.2017
Сообщений: 55
07.05.2017, 11:01  [ТС] 9
Я знаю как поменять цвет по месту. Я спрашиваю совсем о другом.

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

Если такой возможности нет - я перестану мучать всех вопросами. Просто буду искать другие пути реализации.
0
7794 / 6560 / 2985
Регистрация: 14.04.2014
Сообщений: 28,681
07.05.2017, 11:10 10
Так или иначе придётся создавать функцию вывода, которая будет как-то распознавать текст. По адресу, по содержимому.
0
21 / 21 / 10
Регистрация: 11.09.2015
Сообщений: 103
07.05.2017, 11:23 11
peva, ну сколько можно выкозюливать! Ведь тебе Василий в №2 сразу ответил на твой первый вопрос.
А хочешь, чтобы текстовая переменная имела свойство Цвет - прилепи к ней первым символом атрибуты цвета и напиши функцию для вывода на консоль этого атрибута а затем остальной части текста. А во всех других делах используй этот текст, игнорируя первый символ-атрибут цвета.
0
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
07.05.2017, 11:33 12
Есть кроссплатформенное решение.
0
07.05.2017, 11:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2017, 11:33
Помогаю со студенческими работами здесь

Принятие русского шрифта в консоли
Здрасте! Я написал програму, которая должна использовать русский шрифт, но она его не распознает....

Изменение размеров и шрифта консоли
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { const int ROW=5; ...

Поменять размер шрифта в консоли
Как вывести в консоль символ с нужным размером шрифта? Заранее спасибо.

Установка шрифта консоли и размера символов
Всем привет! Подскажите пожалуйста как можно программно установить шрифт в консоли (пишу...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru