Comment écrire du texte coloré dans la console avec C++ ? C'est-à-dire, comment puis-je écrire des textes différents avec des couleurs différentes ?
Notez que cette fonction est réservée à Windows.
Comment écrire du texte coloré dans la console avec C++ ? C'est-à-dire, comment puis-je écrire des textes différents 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;
}
Attributs des personnages Voici comment interpréter la valeur "k".
Name FG BG
Black 30 40
Red 31 41
Green 32 42
Yellow 33 43
Blue 34 44
Magenta 35 45
Cyan 36 46
White 37 47
Bright Black 90 100
Bright Red 91 101
Bright Green 92 102
Bright Yellow 93 103
Bright Blue 94 104
Bright Magenta 95 105
Bright Cyan 96 106
Bright White 97 107
#include <iostream>
#include <string>
int main(int argc, char ** argv){
printf("\n");
printf("\x1B[31mTexting\033[0m\t\t");
printf("\x1B[32mTexting\033[0m\t\t");
printf("\x1B[33mTexting\033[0m\t\t");
printf("\x1B[34mTexting\033[0m\t\t");
printf("\x1B[35mTexting\033[0m\n");
printf("\x1B[36mTexting\033[0m\t\t");
printf("\x1B[36mTexting\033[0m\t\t");
printf("\x1B[36mTexting\033[0m\t\t");
printf("\x1B[37mTexting\033[0m\t\t");
printf("\x1B[93mTexting\033[0m\n");
printf("\033[3;42;30mTexting\033[0m\t\t");
printf("\033[3;43;30mTexting\033[0m\t\t");
printf("\033[3;44;30mTexting\033[0m\t\t");
printf("\033[3;104;30mTexting\033[0m\t\t");
printf("\033[3;100;30mTexting\033[0m\n");
printf("\033[3;47;35mTexting\033[0m\t\t");
printf("\033[2;47;35mTexting\033[0m\t\t");
printf("\033[1;47;35mTexting\033[0m\t\t");
printf("\t\t");
printf("\n");
return 0;
}
g++ cpp_interactive_terminal.cpp -o cpp_interactive_terminal.cgi
chmod +x cpp_interactive_terminal.cgi
./cpp_interactive_terminal.cgi
@Mehdi Mohammadpour J'ai Windows 10, et vos codes d'échappement sont Cela fonctionne pour moi, mais il me semble que vous avez inversé les codes d'avant-plan et d'arrière-plan. Pouvez-vous inverser les intitulés "FG" et "BG", s'il vous plaît ?
Le C++ standard n'a pas de notion de "couleurs". Ce que vous demandez dépend donc du système d'exploitation.
Pour Windows, vous pouvez consulter le SetConsoleTextAttribute fonction.
Sur *nix, vous devez utiliser la commande ANSI les séquences d'échappement.
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
// colorattribute = 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);
SetConsoleTextAttribute(hConsole, col);
cout << "Color Text";
SetConsoleTextAttribute(hConsole, 15); //set back to black background and white text
ENABLE_VIRTUAL_TERMINAL_PROCESSING
d'une manière ou d'une autre ne fonctionne pas pour moi sous Windows 10. J'obtiens [32mError![0m
comme sortie. Est-ce que quelque chose m'échappe ?
@ProjectPhysX J'ai trouvé une solution, nous devrions d'abord sauvegarder le mode console original. ``` DWORD dwMode ; HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE) ; GetConsoleMode(hOutput, &dwMode) ; dwMode |= ENABLE_PROCESSED_OUTPUT | ENABLE_VIRTUAL_TERMINAL_PROCESSING ; SetConsoleMode(hOutput, dwMode)) ; ``` Cela fonctionne pour moi sur Win10.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
A fait mais pas de ressources à trouver différentes couleurs dans la console C++ :)
4 votes
Quelle est la console C++ ?
0 votes
Duplicata possible de : stackoverflow.com/questions/3585846/
0 votes
Faites attention à ces réponses. Votre console aura les changements après la sortie du programme si vous ne les annulez pas vous-même.