C couleurs

Bonjour, comment on fait pour mettre en couleur un printf s'il vous plait?

6 réponses

  1. J'ai trouvé ça https://www.developpez.net/forums/d309614/c-cpp/c/couleurs-c/ mais je comprends pas ce que je dois faire avec la fonction
    1
    1. Contributeur
      Beh t'as la fonction Color() qu'il faut que tu copies. Tu as un exemple dans ton lien. Et ensuite tu utilises la fonction comme dans l'exemple. C'est quoi que tu comprends pas ? Copie l'exemple donné et bidouille-le un peu, tu comprendras mieux je pense.
      0
  2. Modérateur
    Salut,

    Tu utilises quel compilateur ?

    ++
    0
    1. MICROSOFT Visual C++ 2008 Express Edition
      0
  3. Modérateur
    Petite question subsidiaire : ton code est déjà en couleur ou en noir et blanc ?

    0
    1. Blanc sur noir mais j'aimerais bien changer le blanc
      0
  4. Contributeur
    Bonjour,
    Ce n'est pas possible en C standard. Il faut donc passer par les fonctions du noyau. Par exemple pour windows, tu peux utiliser la fonction suivante : SetConsoleTextAttribute : https://docs.microsoft.com/en-us/windows/console/setconsoletextattribute?redirectedfrom=MSDN

    Cdlt,
    0
    1. Modérateur
      Merci bien ! :))

      Je comprends mieux pourquoi j'avais un mal fou à trouver l'introuvable ! ^^*

      @+
      0
    2. Contributeur
      Effectivement, tu pouvais chercher longtemps ^^.
      0
  5. J'ai fais ça et ça marche mais y'a pas moyen d'enlever quelque trucs inutiles?

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

    void Color();

    void main(int argc, char *argv[])
    {
    Color(12,0);
    printf("Mmmmmm donut\n");
    Color(15, 0);

    system ("pause");
    }

    void Color(int couleurDuTexte,int couleurDeFond)
    {
    HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
    }
    0
    1. Contributeur
      Ce n'est pas void main qu'il faut mettre mais int main(...)
      Ensuite tu ne te sers pas des arguments, donc tu peux mettre : int main (void), il faudra aussi rajouter return 0; après ton system("pause");
      Ensuite, tu ne peux rien enlever. Par contre, tu peux très bien mettre la fonction Color dans un fichier à part pour alléger ton code.

      Cdlt,
      0
    2. On m'a appris que void main pour le moment et je le laisse et pour le return 0 je sais pas ce que c'est mais mon system pause il est important, sans ça le logiciel se ferme de suite.

      Comment je met dans un fichier à part la fonction color?
      0
    3. Contributeur
      Beh on t'a appris des bêtises car void main() n'existe pas en C standard. M'enfin bref. De plus, je ne t'ai pas dit de mettre return 0; à la place de system("pause"); mais de le mettre après. Mais bon si tu laisses ton void main(), ne mets pas return 0;
      Sinon pour mettre la fonction color() à part, il suffit de faire copier coller de la fonction void Color() et de son contenu dans un fichier .c, de mettre son prototype dans un header. Il te restera à utiliser le #define et faire la compilation séparée.
      Cdlt,
      0
    4. Je comprends pas après "il suffit de faire copier coller de la fonction void Color() et de son contenu dans un fichier .c"
      0