C couleurs

Jonathan_117 Messages postés 269 Statut Membre -  
Jonathan_117 Messages postés 269 Statut Membre -
Bonjour, comment on fait pour mettre en couleur un printf s'il vous plait?

6 réponses

  1. Jonathan_117 Messages postés 269 Statut Membre 43
     
    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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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. green day Messages postés 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 166
     
    Salut,

    Tu utilises quel compilateur ?

    ++
    0
    1. Jonathan_117 Messages postés 269 Statut Membre 43
       
      MICROSOFT Visual C++ 2008 Express Edition
      0
  3. green day Messages postés 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 166
     
    Petite question subsidiaire : ton code est déjà en couleur ou en noir et blanc ?

    0
    1. Jonathan_117 Messages postés 269 Statut Membre 43
       
      Blanc sur noir mais j'aimerais bien changer le blanc
      0
  4. green day Messages postés 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 166
     
    Alors, malheureusement, je ne connais pas ce compilateur, voilà un tuto à tout hasard :

    https://apais.developpez.com/tutoriels/c++/visual-cpp-express/installation/

    et j'ai trouvé ceci :

    https://codes-sources.commentcamarche.net/

    Mais je sais pas du tout si ça convient et répondra à ta question :/

    Faut farfouiller dans la barre d'outils, l'option est y certainement !

    Désolée de ne pouvoir répondre plus ... :\
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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. green day Messages postés 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 166
       
      Merci bien ! :))

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

      @+
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Effectivement, tu pouvais chercher longtemps ^^.
      0
  7. Jonathan_117 Messages postés 269 Statut Membre 43
     
    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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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. Jonathan_117 Messages postés 269 Statut Membre 43
       
      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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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. Jonathan_117 Messages postés 269 Statut Membre 43
       
      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