bonjour tout le monde,
j'aimerai ajouter un petit quelque chose a mon programme ecrit en C :lol: , je veux afficher quelque messages en couleur au mode console, comme le TEXTCOLOR je crois en pascal 8-)
merci d'anance pour votre aide a moi ...:)
Version imprimable
bonjour tout le monde,
j'aimerai ajouter un petit quelque chose a mon programme ecrit en C :lol: , je veux afficher quelque messages en couleur au mode console, comme le TEXTCOLOR je crois en pascal 8-)
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:#include <windows.h>
Avant la main:Code:
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, regardeCode: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:
:yaisse2:Code:
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 ; :aie:Code: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)
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.:mrgreen:Code:
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.Citation:
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 avecCode:#define couleur(param) printf("\033[%sm",param)
couleur("0") pour remettre en standard.Code:couleur("32") // Par exemple
Enjoy.
Quel rapport avec GNU/Linux ? C'est une question de terminal, c'est tout.Citation:
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.Citation:
Envoyé par Emmanuel Delahaye
Car ma méthode ne fonctionne pas sur la console windows.
C'est une astuce simple qui peut servir. :(
bonjour,Citation:
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:
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.)Citation:
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.Citation:
Envoyé par IDE
bah non moi j'utilise printf avec conio et sa marche super.:yaisse2:
Le problème n'est pas là. Lance ton programme en redirigeant la sortie :Citation:
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:
1
2
3 #include <windows.h> system("color 9");
C'est pas le bon header...Citation:
Envoyé par Ucom-C++
Code:#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:
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 :)