Jak zmienic kolor tekstu w c++, ale kolor nie calego tekstu tylko tego co napisze po zmianie koloru.
Czyli raczej nie coś takiego: "system("color A")", bo to mi zmienia tez kolor tego co napisalem wczesniej.
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
W systemach Windows można tego dokonać przy użyciu WinApi. Poniżej umieściłem kod funkcji, która zmienia kolor, jakim będzie pisany tekst.
#include <windows.h>
void kolor(int tekst, int tlo)
{
HANDLE wyjscie;
wyjscie=GetStdHandle(STD_OUTPUT_HANDLE); //weź uchwyt do konsoli
SetConsoleTextAttributes(wyjscie,tekst+16*tlo); //ustaw kolor; tekst+16*tlo jest dlatego, że kolor tekstu to pierwsze 4 bity liczby, a kolor tła to bity 5-8.
}
Kolory ciemne:
0 - czarny
1 - niebieski
2 - zielony
3 - cyjanowy
4 - czerwony
5 - magenta
6 - żółty
7 - jasnoszary
Kolory jaskrawe:
8 - szary
9 - niebieski
10 - zielony
11 - cyjanowy
12 - czerwony
13 - magenta
14 - żółty
15 - biały
W Linuksie można to zrobić dużo prościej:
void kolor(int tekst, int tlo)
{
cout << "\033[0;" << tekst << "m\033[7;" << tlo << "m";
}
na przyszłośc radze podawać jakiego używaszkompilatora i jakiego OSa (systemu operacyjnego). zakłądam, że pod windą, bo inaczej wiedziałbyś o tym, a więc dołącz bibliotekę:
#include <windows.h>
/* i użyj funkcji SetConsoleTextAttribute()
np. by uzyskać matrixową zieleń: */
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);