Colorisation du texte dans la console avec C ++

Comment puis-je écrire du texte en couleur sur la console avec C ++? C’est-à-dire comment puis-je écrire du texte différent avec des couleurs différentes?

Ajoutez un peu de couleur à votre texte de console

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // you can loop k higher to see more color choices for(int k = 1; k < 255; k++) { // pick the colorattribute k you want SetConsoleTextAttribute(hConsole, k); cout << k << " I want to be nice today!" << endl; } 

texte alt

Atsortingbuts de caractères Voici comment interpréter la valeur "k".

La norme C ++ n’a aucune notion de «couleurs». Donc, ce que vous demandez dépend du système d’exploitation.

Pour Windows, vous pouvez extraire la fonction SetConsoleTextAtsortingbute .

Sur * nix, vous devez utiliser les séquences d’échappement ANSI .

En supposant que vous parlez d’une fenêtre de la console Windows, recherchez les fonctions de la console dans la documentation MSDN Library.

Sinon, ou plus généralement, cela dépend de la console. Les couleurs ne sont pas sockets en charge par la bibliothèque C ++. Mais une bibliothèque pour la gestion de la console peut / va supporter les couleurs. Par exemple, google “ncurses colors”.

Pour les terminaux série et les émulateurs de terminaux connectés, vous pouvez contrôler les choses en émettant des “séquences d’échappement”. Celles-ci commencent généralement par ASCII 27 (le caractère d’échappement en ASCII). Il existe une norme ANSI et de nombreux schémas personnalisés.

Cheers & hth.,

Vous pouvez écrire des méthodes et appeler comme ça


 HANDLE hConsole; hConsole = GetStdHandle(STD_OUTPUT_HANDLE); int col=12; // color your text in Windows console mode // colors are 0=black 1=blue 2=green and so on to 15=white // coloratsortingbute = foreground + background * 16 // to get red text on yellow use 4 + 14*16 = 228 // light red on yellow would be 12 + 14*16 = 236 FlushConsoleInputBuffer(hConsole); SetConsoleTextAtsortingbute(hConsole, col); cout << "Color Text"; SetConsoleTextAttribute(hConsole, 15); //set back to black background and white text 

Je ne suis pas sûr de ce que vous voulez vraiment faire, mais je pense que vous voulez que votre programme C ++ affiche du texte coloré dans la console, non? Je ne sais pas à propos de Windows, mais sur tous les Unices (y compris Mac OS X), vous utiliseriez simplement des séquences d’échappement ANSI pour cela.

La façon la plus simple de faire est de:

 #include  system("Color F3"); 

Où “F” est le code pour la couleur de fond et 3 est le code pour la couleur du texte.

Jouez avec elle pour voir d’autres combinaisons de couleurs:

 system("Color 1A"); cout << "Hello, what is your name?" << endl; system("Color 3B"); cout << "Hello, what is your name?" << endl; 

Ici, cplusplus est un exemple d’utilisation des couleurs dans la console.

Sous Windows, vous pouvez utiliser n’importe quelle combinaison de vert et de bleu rouges au premier plan (texte) et à l’arrière-plan.

 /* you can use these constants FOREGROUND_BLUE FOREGROUND_GREEN FOREGROUND_RED FOREGROUND_INTENSITY BACKGROUND_BLUE BACKGROUND_GREEN BACKGROUND_RED BACKGROUND_INTENSITY */ HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAtsortingbute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY); std::cout << "I'm cyan! Who are you?" << std::endl; 

Source: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682088(v=vs.85).aspx#_win32_character_atsortingbutes