Kolorowanie tekstu w konsoli

0

No właśnie jak wypisać na ekranie tekst kolorowy? W miarę możliwości proszę o rozwiązanie przy użyciu nagłówka iostream, gdyż ten znam, a uczyć się nowego nie mam ochoty :-P

0

Iostream nie udostępnia żadnych funkcji "kolorujących". Jeżeli działasz po windowsem to albo wykorzystaj bibliotekę conio2 albo funkcje z WinApi (GetStdHandle() i SetConsoleTextAttribute()).

0

jesli linux to : man console_codes

0

@Drax
iostream jest standardowym nagłówkiem C++, gdzie brak takich głupot jak kolorowanie. Programy pod konsole zazwyczaj nie mają wyglądać tylko działać...

0
DzieX napisał(a)

@Drax
iostream jest standardowym nagłówkiem C++, gdzie brak takich głupot jak kolorowanie. Programy pod konsole zazwyczaj nie mają wyglądać tylko działać...

Widzisz kolego, kolorowanie potrzebne mi nie ze względu na "wyglądanie", ale właśnie dla "działania". W tekście wyrzucanym przez program czerwone "K" ma być czymś zasadniczo różnym od dajmy na to zielonego "K" i ciężko byłoby to logicznie obejść. A nie jestem jeszcze na tyle obeznany w temacie, żeby bawić się w GUI :p

0

jesli operujesz na linuksie, zaznajom sie z kodami sterujacymi (tzw. ansi-kolorki)

wyglada to mniej wiece tak, ze np. wypisanie czerwonego K to:

printf("\e[0;31m");//a teraz na czerwono
printf("K");
printf("\e[0;0m");//powrot do normy

mozna zmieniac kolory tekstu, tla, mozna zmieniac jasnosci kolorow (jasno/ciemnoczerwony), mozna ustawic blinka..

ale to ruszy tylko jak terminal jest z takim kodowaniem kompatybilny! na linuksie wiekszosc jest. na windozie - nogo. jeszcze za czasow win98 i winme mozna sobie bylo zaladowac w dosie pliczek ansi.sys, ale terazniejsza nt'owa konsola to tylko tak jak mowil reVis - SetConsoleTextAttribute

0

Gdzies kiedy znalazlem pod windowsa cos takiego, uzywa sie tego calkiem fajnie ;)

enum Kolor { DBLUE=1,GREEN,GREY,DRED,DPURP,BROWN,LGREY,DGREY,BLUE,LIMEG,TEAL,
    RED,PURPLE,YELLOW,WHITE,B_B };

void kol(int kolor)
{
    HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hcon,kolor);

    //wywolanie --- kol(nr.koloru)
    //7-standartowy
    //9-niebieski
    //10-zielony
    //11-jasny_niebieski
    //12-czerwony
    //13-fiolet
    //14-zolty
    //15-bialy
}

Wywolanie kol(nr.koloru); i text jest kolorowany w tym kolorze powrot do stadartowego koloru poprzez wywolanie kol(7);

0

Dziękuję, ale mnie chodzi raczej o sposoby pod Linuksy :p

0

pod linuksy to kody sterujące ansi, które podał quetzalcoatl.
http://www.bluesock.org/~willg/dev/ansi.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0