[c++] Couleurs de la console

Résolu
Astrofan -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde!!

Malgré les multiples conseils que j'ai vus sur ce site, je ne comprends toujours pas comment mettre dans mon programme en C++ un fond bleu clair et des lettres rouges!!

Quelqu'un pourrait m'expliquer plus en détail??

Merci parce que là...je suis paumé!!

Je suis en train de créer un programme d'électrotechnique qui permet de calculer automatiquement les formules!!

Merci d'avance!

Bonne Année!!
Configuration: Windows XP
Firefox 2.0.0.1

Mais je vais bientôt avoir:

Fedora Core 5
Firefox 2.0.0.1

16 réponses

Résumé de la discussion

Plusieurs contributions expliquent comment afficher un fond bleu clair et des lettres rouges en C++ sur Windows, en utilisant la commande système color ou des bibliothèques pour plus de portabilité. Des réponses préconisent system("color 1d"); pour changer le texte et l'arrière-plan, avec des correspondances hexadécimales et des exemples tandis que d'autres recommandent d'éviter system et d'utiliser conio2.h ou API graphique. Certains soulignent la portabilité limitée et la dépendance à l'OS, évoquant Linux et Cygwin, tandis que d'autres rappellent que les solutions spécifiques à Windows restent suffisamment pragmatiques en pratique. En cas de besoin, des échanges suggèrent d'explorer les options d'API graphiques ou des séquences d'échappement selon le shell, afin d'obtenir des couleurs compatibles avec environnements sans dépendance à system.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. maxius
     
    salut la couleur en mode console rien de plus simple on peu changer en meme temps la couleur du texte que celle du background de la console avec la fonction
    system("color £#) où £ represente la couleur du texte et # la couleur de fond de la console voici les differentes correspondances pour les couleurs :
    0 = Noir B=Cyan
    1 = bleu foncé C=rouge
    2 = vert D=rose
    3 = bleu-gris E=jaune
    4 = Marron F=blanc
    5 = pourpre
    6 = kaki
    7 = gris clair
    8 = Gris
    9 = Bleu-clair
    A = vert-clair

    EXEMPLE D'APPLICATION: ecrire C++ qui affiche BONJOUR FORUM COMMENTCAMARCHE en bleu dans une console de couleur rose

    RESOLUTION DE L'EXEMPLE D'APPLICATION:

    #include <iostream>
    #include <stdlib.h>

    using namespace std;

    int main()
    {
    system("color 1d");
    cout<<"BONJOUR FORUM COMMENTCAMARCHE"<<endl;
    return 0;
    }

    J'espere que ceci vous aidera!
    amitié------fraternité-----respect
    esprit de recherche et d'innovation
    4
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Tu mélanges le c++ et le c. Et sous windows il vaut mieux utiliser l'api que la fonction system.
      0
    2. mattvi
       
      merci
      0
    3. Anselmedu25
       
      Meci!!!
      0
    4. mehdi the geek
       
      mercii bcp
      0
  2. Synyster
     
    afin de mettre un fond bleu et des lettres rouges il faut inclure conio2.h
    tools->check for updates/packages
    tu met le devpack server a devpacks.org ...
    tu verras une liste de librairies apparaitre
    tu trouveras un conio tu le telecharge

    puis dans ton projet tu ajoute les linkers
    project options -> parametres
    -conio2
    ../lib/libconio.a

    j'ai deja essayé et ça marche ;)
    2
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Oui, on n'en doute pas que ça marche.
      Mais on a dit que conio, ce n'est pas portable !!!

      Il vaut donc mieux utiliser Ncurses.
      0
    2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       
      Merci fiddy tu m'ôtes les mots de la bouche :-)
      0
    3. MY
       
      ###########EH REGARDE ICI##########
      Utilise la fonction system(color ##), et a la place des diézes tu entre un caractere de cette liste
      0=noir 1=bleu foncé 2=vert 3=bleu gris 4=marron 5=pourpre 6=kaki 7=gris claire 8=gris 9=bleu claire B=cyan C=rouge D=rose E=jaune F=blanc

      le premier chiffre correspond a l'arriére plan (exemple: system(color F#); le fond est blanc) et le second chiffre correspond au texte donc system (color E2); il y aura un fond jaune et du texte vert ATTENTION ne pas mettre de virgule entre les 2 argument et ne pas oublier le point virgule

      ALLER BY ^^
      0
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      @MY,
      Pas besoin de mettre des dièses pour mettre en évidence ton commentaire...
      De plus, system est une fonction à éviter pour deux raisons : fonction pas efficace, on préférera utiliser une API (déjà évoquée dans un post ci-dessus), et ta méthode n'est pas portable : il vaut mieux utiliser une bibliothèque (également déjà évoquée).
      Cdlt,
      0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Euh comment ça ?
    C'est un programme qui se lance dans une fenêtre et tu voudrais changer des couleurs ? Ou il se lance dans une console ?
    0
  4. astrofan
     
    oui c'est un programme en mode console car je ne sais encore faire le mode fenêtre!!

    sais-tu comment faire??
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    A priori il faut utiliser la librairie ncurses.

    bonne chance
    0
    1. Antoine
       
      ncurse fonctionne très bien et est très facile à utiliser. ncurse t'offre d'autres passibilités comme redimensionner la console, créer des cadres, écrire à des coordonnées spécifiques...
      Il y a aussi termios, mais je n'a jamais essayé.
      0
  7. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Pas besoin de ncurses, c'est une histoire de caractères spéciaux à afficher dans la console.
    Voici un tutorial là dessus:
    https://openclassrooms.com/fr/courses
    0
  8. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Oui mais a priori ca va dépendre de ton shell. Typiquement la tu donns les séquences d'échappement en bash (sous linux) alors qu'astrofan veut faire ça sous windows. L'avantage c'est qu'en ncurses tu dois pouvoir être indépendant du type du shell et au moins de l'OS. Et pourtant si tu installes cygwin on voit qu'il est possible d'avoir des couleurs dans la fenêtre "commandes msdos" ! Mais rien ne dit que ce sont les mêmes séquences d'échappement.

    Bonne chance
    0
    1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Ah oui tu as raison, j'avais pas pris en compte la portabilité...
      0
  9. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Pas de soucis :-)
    0
  10. Med from Sfax
     
    Salut
    Voici un morceau de code qui résoudra le probleme de couleur
    #include<widows.h>
    #include<stdio.h>
    int main()
    {
    HANDLE manip_console=GETSTDHANDLE(STD_OUTPUT_HANDLE);
    int couleur1,couleur2;
    SetConsoleTextAttribute(manip_console,couleur1|couleur2);
    printf("Un texte d'essai\n ");
    return 0;
    }
    et le tour est joué
    bon couleur1 et couleur 2 c'est pour le fond et le texte

    ou bien t'as qu'à ,telecharger econio.h et econio.cpp
    Ciao
    0
  11. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Sauf que ça ne marchera que sous windows ;)
    0
    1. Skami 18
       
      Et Windows, c'est mal.
      0
    2. EtiN Messages postés 75 Statut Membre 7
       
      ça c'est vrai. (linux powaa)
      0
    3. Antoine
       
      Et windows c'est très bien fait, et ça constitue la large majorité des ordinateurs.
      0
    4. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       
      Sauf que ce n'est pas la question. Quand on peut faire un truc qui marche partout et un truc qui marche à certains endroit à coût équivalent, pourquoi ne pas choisir l'approche universelle ?
      0
  12. curite Messages postés 66 Statut Membre 13
     
    Bonjours, tu n'a qu'a regarder ici https://openclassrooms.com/fr/courses c'est en c mais c'est facilement adaptable.
    0
    1. Etn3000
       
      lien mort. dommage c'était un bon tuto
      0
    2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       
      Effectivement il ne reste que la partie linux :
      http://www.siteduzero.com/tutoriel-3-35298-des-couleurs-dans-la-console-linux.html

      ... raison de plus pour passer par une librairie ;-)
      0
    3. BaptisteM71
       
      Pourquoi, il à supprimé le lien???
      J'en ai besoin!
      0
  13. KX Messages postés 19031 Statut Modérateur 3 020
     
    J'aime pas trop déterrer les vieux sujets, mais lorsque je fais des recherches sur Ncurses, le système supporté est POSIX, alors comment l'utiliser sous Windows ?

    Note : moi je voudrais juste changer la couleur du texte et du fond d'écran de la console dans un projet C++/OpenGL/GLUT, de préférence portable, mais au minimum Windows.
    0
  14. morgane
     
    Bonjour j'ai lu toutes vos réponses mais beaucoup de vos liens sont morts ( je sais j'arrive tard après la bataille ) j'ai le même soucis sous windows j'aimerais changer la couleur du texte dans la console mais seulement partiellement , juste sur quelques mots qui doivent s'afficher en bleu, savez vous comment faire ?
    Avec vos conseils j'ai réussi à afficher tout le terminal en bleu, mais pas juste les mots qui m'intéressaient:/
    merci d'avance
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Le lien pour pdcurses n'est pas mort.
      De plus, il y a un post qui donne un bout de code sans lien (post #8).

      Je t'invite donc à relire tout le fil, et tu trouveras la réponses à tes questions. N'hésite pas à ouvrir un nouveau post si tu n'y arrives pas.
      0
    2. morgane > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
       
      j'ai bien relu tout le fil , mais je ne vois pas de conseil permettant de mettre en couleur seulement une partie du terminal et non le terminal en entier , j'ai vraiment besoin d'afficher seulement une partie d'une chaine de caractère en bleu et non toute la console, si vous savez faire ça ou si vous connaissez un bon tutoriel je suis preneuse !
      merci beaucoup
      0
    3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > morgane
       
      Et ça, ça ne te convient pas : https://openclassrooms.com/courses/des-couleurs-dans-la-console-linux ?
      0
    4. morgane
       
      non parce que déjà c'est en c et que je n'ai aucune connaissance de ce langage pour le traduire et le tuto pour Windows de cette page est mort et je cherche les deux versions, celle linux et celle Windows (car actuellement je code sous Windows mais le programme final doit tourner sous linux ).
      J'ai regardé ce lien, quand je dis que j'ai tout lu je ne mens pas , pas besoin d'être agressif, j'ai un soucis , je demande de l'aide et si personne ne peut m'aider ici ce n'est pas grave, je demanderai ailleurs :)
      0
    5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Ce n'était pas un ton agressif, rassure-toi ;-).

      Sinon, oui le post était en C. Pour le C++, tu as juste à remplacer printf("...") par std::cout << "..."; et remplacer stdio.h par iostream.

      Dans ton cas (portabilité sur windows et GNU/Linux), le seul moyen est l'utilisation d'une bibliothèque tierce. Ncurses par exemple. Un tuto : https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
      Note : il me semble un peu vieux le tuto. Mais en même temps, c'est pas tout neuf cette bibliothèque. Si tu veux plus de modernité, il faudra passer sur une bibliothèque à fenêtre comme Qt, GTK2+.
      0
  15. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Outre le fait qu'on a dit que conio ne permettait pas d'avoir un programme portable (qui fonctionne sous windows, linux...) contrairement à un programme basé sur la librairie ncurses, ce programme comporte un certain nombre de fautes (dont l'inclusion #include <windows.h>).
    https://en.wikipedia.org/wiki/Ncurses

    Donc merci de prendre 2 minutes la prochaine fois pour lire ce qui a été écrit auparavant.
    -1
  16. mathieu
     
    Voici mon code sur code::block en c++ profiter bien :D

    #include <iostream>
    #include <stdlib.h>
    using namespace std;

    int main()
    {
    system("COLOR 1");
    cout << "Bonjour Mon ptit vieux" << endl;
    system("COLOR 2");
    cout << "comment sava ?" << endl;
    system("COLOR 3");
    cout << "j'ai enfin reussi a mettre le texte en couleur!" << endl;
    system("COLOR 4");
    cout << "c'est une grande chose ? non ?" << endl;
    system("COLOR 5");
    cout << "aller travaille bien Michou" << endl;
    system("COLOR 6");
    cout << "bye" << endl;
    system("COLOR 7");
    cout << "bye" << endl;
    system("COLOR FC");
    cout << "bye" << endl;
    return 0;
    }
    -3
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      system("...") est déconseillé... Cf. le fil.
      0