Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2968 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Afficher le texte en couleur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher le texte en couleur

n°910147
frrobnet
Posté le 29-11-2004 à 11:51:29  profilanswer
 

Je souhaite afficher du texte en couleur à l'écran mais je n'arrive pas a le faire.  
J'utilise la fonction printf pour afficher mais je ne sais pas comment changer la couleur.
 
Merci

mood
Publicité
Posté le 29-11-2004 à 11:51:29  profilanswer
 

n°910153
cris56
Posté le 29-11-2004 à 11:57:36  profilanswer
 

ca dépend du systeme, sous windows setconsoleattributes il me semble (tout y est sur msdn)

n°910155
Taz
bisounours-codeur
Posté le 29-11-2004 à 11:58:00  profilanswer
 

ncurses

n°910178
HelloWorld
Salut tout le monde!
Posté le 29-11-2004 à 12:19:54  profilanswer
 

http://forum.hardware.fr/icones/defaut/recherche.gif


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°910180
calogerogi​gante
Posté le 29-11-2004 à 12:22:51  profilanswer
 

Si tu es sous Linux, il faut que tu jettes un oeil sur ncurses.h.
 
Celle -ci est un peu équivalente à conio.h.
 
Si tu vas sur google, tu peux facilement trouver le How-To en pdf, et si tu prends la peine de le lire, toute la gestion de la couleur est expliquée.
;-)

n°910182
frrobnet
Posté le 29-11-2004 à 12:24:27  profilanswer
 

Ok mais comment est ce que ca fonctionne ncurses

n°910184
skeye
Posté le 29-11-2004 à 12:26:33  profilanswer
 

http://www.google.fr/search?q=ncur [...] S:official


---------------
Can't buy what I want because it's free -
n°910386
calogerogi​gante
Posté le 29-11-2004 à 16:18:47  profilanswer
 

Voici un petit programme que j'ai fait qui remplit de milliers de cases de couleurs ton écran.
 
Tu en comprendras sans problème le fonctionnement, si tu parcours ça en même temps que le pdf de ncurses.h
 

Code :
  1. #include <stdlib.h> // pour rand()
  2. #include <ncurses.h>
  3. main()
  4. {
  5. int i,j;
  6. int x,y;
  7. float maxx, maxy;
  8. initscr(); start_color(); curs_set(FALSE);
  9. // on définit 8 marqueurs, le dernier j
  10. // de la fonction init_pair est la couleur de fond.
  11. for (j=0;j<8;j++) init_pair(j+1,COLOR_WHITE,j);
  12. maxx=(float) COLS;
  13. maxy=(float) LINES;
  14. for (i=1; i<100000; i++)
  15.   {
  16.   // on tire un marqueur au hasard:
  17.   j=1+(int) (8.0 * rand()/(RAND_MAX+1.0));
  18.   attron(COLOR_PAIR(j));
  19.   // on prend une position au hasard dans l'écran:
  20.   x=(int) ( (maxx) * rand()/(RAND_MAX+1.0));
  21.   y=(int) ( (maxy) * rand()/(RAND_MAX+1.0));
  22.   // on dessine le caractère "espace" colorié
  23.   // à cette position:
  24.   mvprintw(y,x," " );
  25.   attroff(COLOR_PAIR(j));
  26.   refresh();
  27.   }
  28. // on regarde le joli résultat:
  29. getch();
  30. // on s'en va:
  31. endwin();
  32. }


 
A compiler par exemple ainsi:
 
gcc -o mosaique.exe mosaique.c -lncurses
 
Voilà, bon amusement !!
 :sol:


Message édité par calogerogigante le 30-11-2004 à 12:32:35
n°910695
blurk
Posté le 29-11-2004 à 21:23:01  profilanswer
 

Il n'y a pas moyen de faire ça en utilisant les séquences ANSI ?

n°910970
HelloWorld
Salut tout le monde!
Posté le 30-11-2004 à 00:18:49  profilanswer
 

C'est ce que fait ncurses pour toi.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 30-11-2004 à 00:18:49  profilanswer
 

n°910973
Taz
bisounours-codeur
Posté le 30-11-2004 à 00:27:20  profilanswer
 

blurk a écrit :

Il n'y a pas moyen de faire ça en utilisant les séquences ANSI ?

ben fais le avec les séquences ANSI sous ton ouaindoz alors. ET NE DEMANDE PAS COMMENT. FAIS UNE RECHERCHE

n°911294
hazar
J'passais dans le coin...
Posté le 30-11-2004 à 15:31:57  profilanswer
 

\033[Nm
 
avec N a remplacer par un numero de couleur.
 
printf("\033[33m Les ncurses, c'est un peu bourrin pour faire ca quand meme\033[0m\n" );
 

n°911300
HelloWorld
Salut tout le monde!
Posté le 30-11-2004 à 15:33:48  profilanswer
 

Peut être, mais c'est d'avantage portable.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°911312
calogerogi​gante
Posté le 30-11-2004 à 15:46:31  profilanswer
 

Moi, c'est le contraire: je préfère utiliser les fonctions "claires et limpides" de ncurses.h (si on prend la peine d'étudier le tutoriel), plutôt que les signes cabalistiques pleins de crochets et de chiffres bizarres qui ne marchent pas une fois sur deux, d'un terminal à l'autre (je dis ça par expérience personnelle).
 
Sans rancune !
;-)
Calo.

n°911348
blurk
Posté le 30-11-2004 à 16:45:32  profilanswer
 

Taz a écrit :

ben fais le avec les séquences ANSI sous ton ouaindoz alors. ET NE DEMANDE PAS COMMENT. FAIS UNE RECHERCHE


 
Je ne suis pas l'auteur du topic, hein.
 
Je n'ai aucune envie d'afficher du texte en couleur, et je ne tourne pas sous "ouaindoz". Je posais juste cette question pour évoquer les séquences ANSI, une solution possible qui n'avait pas été abordée dans les réponses précédentes.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Afficher le texte en couleur

 

Sujets relatifs
Probleme de switch et variable contenant du texteLire dans un fichier texte
[RSS] Nombre maximum d'items à afficher[ C ] afficher une seul ligne
Afficher l'uptime d'un serveur Windows avec phpInsécabilité dans texte (HTML)
php, pour ne pas afficher d'images...Dégradé de couleur animé
Couleur texte de sortie console. 
Plus de sujets relatifs à : Afficher le texte en couleur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR