Couleur c

Résolu/Fermé
paul - 27 nov. 2020 à 21:36
 paul - 27 nov. 2020 à 23:05
Bonjour, je voudrait savoir si il est possible de ne changer la couleur d'un seuls mot plustot que de tout le texte ,en c ou alors c++,
merci.



Configuration: Windows / Chrome 86.0.4240.198
A voir également:

2 réponses

[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
Modifié le 27 nov. 2020 à 22:49
Salut paul,

Pas en C standard.

Selon le système que tu utilises et le type de console, tu peux le faire avec différents moyens correspondants.

Sous Windows, pour la console cmd, cela peut se faire avec SetConsoleTextAttribute()

https://docs.microsoft.com/en-us/windows/console/setconsoletextattribute

Sinon, depuis quelques années, Microsoft a introduit dans son API une couche de compatibilité de son terminal avec les séquences d'échappement VT100 du monde Unix.

https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences

Si tu es sur un système Windows récent, tu peux faire ceci :

#include <stdio.h>
#include <windows.h>

#define RED_COL "\x1b[31m"  /* ANSI rouge */
#define END_COL "\x1b[0m"   /* réinitialiser */

int main(void) {
    /* paramétrage de la console CMD pour supporter les séquences 
     * d'échappement VT100 */
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    if (hOut == INVALID_HANDLE_VALUE) {
        return GetLastError();
    }

    DWORD dwMode = 0;
    if (!GetConsoleMode(hOut, &dwMode)) {
        return GetLastError();
    }

    dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
    if (!SetConsoleMode(hOut, dwMode)) {
        return GetLastError();
    }
    
    /* ensuite on peut faire cela */
    printf("Ceci est un texte en couleur normale, avec un mot en " 
            RED_COL "rouge" END_COL ". Et hop.\n");
    return 0;
}


Si tu es sous Linux, tu retires le
#include <windows.h>
et les lignes 8 à 25 et tu fais la même chose.

C'est toujours pas du C standard, mais au moins tu utilises des séquences d'échappement connues sous les systèmes POSIX (après un paramétrage de la console Windows).

Dal
0
super , merci beaucoup, c est exactement ce que je voulais !!
0