bonjour tout le monde,
j'aimerai ajouter un petit quelque chose a mon programme ecrit en C, je veux afficher quelque messages en couleur au mode console, comme le TEXTCOLOR je crois en pascal
![]()
merci d'anance pour votre aide a moi ...![]()
bonjour tout le monde,
j'aimerai ajouter un petit quelque chose a mon programme ecrit en C, je veux afficher quelque messages en couleur au mode console, comme le TEXTCOLOR je crois en pascal
![]()
merci d'anance pour votre aide a moi ...![]()
Oui, c'est possible.
Il faut que tu mette cette libraire dabord
Et il faut mettre cette fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <windows.h>
Avant la main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs { HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte); }
Puis ensuite tu metsBon la 10 et 9 corespondent a des couleurs en tou il y en a 16, regarde
Code : Sélectionner tout - Visualiser dans une fenêtre à part Color(10, 9)
0 : Noir
1 : Bleu foncé
2 : Vert foncé
3 : Turquoise
4 : Rouge foncé
5 : Violet
6 : Vert caca d'oie
7 : Gris clair
8 : Gris foncé
9 : Bleu fluo
10 : Vert fluo
11 : Turquoise
12 : Rouge fluo
13 : Violet 2
14 : Jaune
15 : Blanc
Bon je te donne un exemple pour récapituler:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <stdio.h> // Les includes #include <stdlib.h> #include <windows.h> void Color(int couleurDuTexte,int couleurDeFond); int main(int argc, char *argv[]) // La fonction "main" { Color(12,3); printf("La ton texte va avoir la couleur 12 comme texte et 3 pour fond"); Color(15, 0); //... aprés c'est parti return 0; } void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs { HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte); }![]()
Pardon j'ai aublié il faut mettre le prototype en haut du main...
Et a Color(9, 10); j'ai oublié le ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part void Color(int couleurDuTexte,int couleurDeFond);![]()
Cette technique est pas mal, mais attention, ça a tendance à bugger une fois que ça commence vraiment à scroller (au bout de 300 lignes par défaut sous WinXP)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Bonjour, pourriez-vous me dire si cette fonction fonctionne avec le comilateur Borland C++ 3.1, car j'ai essayé mais sa ne fonctionne pas, merci pour vos réponses.
Michael.
tralf ya une solution facile tu inclus conio et puis tu utilise la fonction textcolor.
exemple:
c'est ce que je fais moi si tu prefere l'autre solution GO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include<conio.c> #include<stdio.h> #include<stdlib.h> int main() { printf("la couleur normale\n"); textcolor(10); printf("la couleur verte\n"); system("pause"); }![]()
Normal, BC++3.1 ne connait pas Win32. C'est un compilateur 16-bit pour DOS et Windows 3.x.Envoyé par IDE
Par contre, il y a tout ce qu'il faut dans conio (textcolor(), textbackground() etc.)
Et sur linux alors?, tout le monde pense à windows de suite! tsss :
et utilisation avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define couleur(param) printf("\033[%sm",param)
couleur("0") pour remettre en standard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part couleur("32") // Par exemple
Enjoy.
Quel rapport avec GNU/Linux ? C'est une question de terminal, c'est tout.Envoyé par lun4t1k
Il doit être compatible VT-100. C'est le cas des consoles unixoïdes et du mode texte DOS/Windows quand le driver ansi.sys est chargé.
Je n'ai pas forcément envie de me charger une lib windows.h si je reste simplement sur linux.Envoyé par Emmanuel Delahaye
Car ma méthode ne fonctionne pas sur la console windows.
C'est une astuce simple qui peut servir.![]()
bonjour,Envoyé par snakemetalgear
pour que sa marche il faut mettre un cprintf et non printf ...![]()
e.g: cprintf("la couleur verte\n");
faire aussi attention aux \n et \t qui passent pas avec cprintf, je les mettais dans des printf séparés (pour les tablulations) et faut remplacer le \n par \r\n.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 textcolor (11); printf ("\t\t\t"); cprintf ("blabla\r\n");
Il y a des constantes pour les couleurs (BLUE, RED, CYAN, etc.)Envoyé par exhortae
Pas de tab. On utilise gotoxy(). Il faut être cohérent.
Bonjour Emmanuel, petite question, pourquoi ne pas utiliser des \t, car comme dans mon menu j'ai une instruction printf, si j'utilise des gotoxy il me faut plusieurs printf pour faire afficher mon menu, merci.
Parce qu'avec conio, on est censé utiliser cprintf() qui n'interprète pas '\t' comme une tabulation.Envoyé par IDE
bah non moi j'utilise printf avec conio et sa marche super.![]()
Le problème n'est pas là. Lance ton programme en redirigeant la sortie :Envoyé par snakemetalgear
monprog > out.txt
Il se passe quoi ?
D'autre part, avec Borland C, c'est le seul moyen d'avoir la colorisation.
salut on peu ajouter les fonction du systéme :
sous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include <windows.h> system("color 9");
C'est pas le bon header...Envoyé par Ucom-C++
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <stdlib.h>
Bonjour,
J'ai ce warning sur la 2e ligne de ta fonction
warning C4761: integral size mismatch in argument; conversion supplied
comment regler le probleme svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void color(int txt,int fond) // fonction d'affichage de couleurs { HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(H,fond*16+txt); }
merci![]()
Partager