Avatar billede jwj Nybegynder
21. juli 2003 - 01:32 Der er 3 kommentarer og
1 løsning

Farvet tekst i konsol

Jeg vil gerne vælge farven på teksten der udskrives til konsolen - kan det lade sig gøre?
Avatar billede bertelbrander Praktikant
21. juli 2003 - 01:54 #1
Hvis din konsol er en konsol i windows kan du bruge følgende hvis din kompiler understøtter windows:

#include <windows.h>
#include <iostream>

int main(void)
{
  HANDLE con = GetStdHandle(STD_OUTPUT_HANDLE);

  SetConsoleTextAttribute(con, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  std::cout << "Green\n";
  SetConsoleTextAttribute(con, FOREGROUND_RED | FOREGROUND_INTENSITY);
  std::cout << "Red\n";
  SetConsoleTextAttribute(con, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
  std::cout << "Blue\n";
  SetConsoleTextAttribute(con, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);

  return 0;
}
Avatar billede jwj Nybegynder
21. juli 2003 - 16:07 #2
Jeg glemte selvfølgelig at skrive, at jeg bruger Trolltech's Qt bibliotek på en Linux-maskine. Men er der ikke en platformsuafhængig metode, så det både virker under Linux og Windows. Det skal dog siges at Linux har førstprioritet. Sorry ;-)
Avatar billede bertelbrander Praktikant
21. juli 2003 - 19:44 #3
Der findes ikke nogen standard metode.
På Linux plejer man vist at bruge ncurses ("man ncurses" i et terminal vindue), det kan også bruges med nogle windows kompilere (f.ex www.cygwin.com der er en gcc til windows).
Jeg kender ikke QT.
Avatar billede jwj Nybegynder
22. juli 2003 - 15:52 #4
Jeg har fundet en løsning på mit problem og det er faktisk ret simpelt:

printf("<style><text>");

hvor:

<style> kan være en ASCII farve (se blandt andre http://pueblo.sourceforge.net/doc/manual/ansi_color_codes.html)
<text> er teksten der skal vises

fx:

printf("\033[1;31mFed og grøn");//Husk \033 først ellers virker det ikke

skriver "Fed og grøn" med en fed grøn tekst i konsolen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester