France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 521 membres enregistrés - 2 069 419 posts - 122 057 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Langages
                Couleur en C
63 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
Couleur en C

Cyberlie


Messages : 19
Inscrit le 10/03/06
Ville : liege
Non connecté
  Posté le 18 March 2006 - 13 h 02 m 17 s
Bonjour a tous je dois faire un program en C sur visual.net
j'aimerai mettre un peu de couleur ds mes printf, mais je sais pa du tt comment je dois faire. :???:
pouvez vous m'aider?
merci d'avance.




Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 18 March 2006 - 13 h 22 m 36 s
J'ai ça qui traine dans un coin de programme ^^
En gros, tu veux mettre un texte en rouge, tu fais :
printf("\033[31m%s\033[00m", "mon super texte en rouge").
Par exemple. Je te laisse mes define. CANCEL est la couleur par défaut (blanc je crois).

#define RED my_putstr("\033[31m")
#define BLUE my_putstr("\033[34m")
#define CYAN my_putstr("\033[36m")
#define GREEN my_putstr("\033[32m")
#define YELLOW my_putstr("\033[33m")
#define CANCEL my_putstr("\033[00m")




bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 18 March 2006 - 13 h 41 m 38 s
hé les gars, la couleur, tout ça, ça dépend QUE de la plate forme, c'est pas un problème de C, C++, Java ou autre.
Woofy, tes codes, ils sont sans doute spécifiques à des écrans VTxxx, non ?

Faut des biblio dédiées, faut voir sur chaque plate forme, sachant que ce sera pas du tout portable.



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 18 March 2006 - 13 h 47 m 38 s
Ah bah moi oui c'était pour une alpha ^^




bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 18 March 2006 - 14 h 02 m 52 s


Le 18 mars 2006 - 13 h 47, Woofy a écrit :
Ah bah moi oui c'était pour une alpha ^^

donc, mauvais conseil du coup ! le pauvre, il essaie ton code, et ça rend n'importe quoi :( ou ça marche, par chance, et sur un autre matos, tout étonné qu'il est, ça foire... ou ça plante. J'ai eu le cas, sur des émulateurs différents, sur l'un deux ça marchait du tonnerre, sur un autre, ça plantait carrément et ça fermait l'émulateur :hot:



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 18 March 2006 - 14 h 11 m 18 s
En mettant les codes couleurs dans un .h spécifique a l'archi et en faisant un makefile digne de ce nom ça doit être possible de faire du multi-plateforme non ?




Cyberlie


Messages : 19
Inscrit le 10/03/06
Ville : liege
Non connecté
  Posté le 18 March 2006 - 14 h 18 m 40 s
Oula, moi les gars ss completement perdue lol. Pourtant on m'avait dit ke c'était tt simple.
:eek:




bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 18 March 2006 - 14 h 28 m 32 s
non, c'est pas si simple, parce que le C ne connait pas d'écran, de clavier, de couleur, etc... mais ça tu le sais, je ne t'apprends rien.
C'est donc pas du tout un problème de C, mais de plate forme.

le mieux, c'est de dire sur quoi tu bosses : windows, linux, unix, autre, et quel type d'écran tu utilises. Et si tu veux faire du jetable (i.e. un petit exo pour toi) ou de l'industriel (i.e. un truc qui doit tourner en conditions réelles)

Je suppose quand même que tu bosses en mode commande, sinon le printf en couleur, il n'a plus lieu d'être...



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Cyberlie


Messages : 19
Inscrit le 10/03/06
Ville : liege
Non connecté
  Posté le 19 March 2006 - 10 h 18 m 37 s
Je ss sous windows xp et mon écran ds le gestionnaire il me met simplement que c'est un panneau plat numérique (j'ai un portable Fujitsu siemens).
En fait je dois faire un program a présenté au prof et donc j'voulais just mettre un peu de couleur pr ke ca donne mieux,donc c'est just un ti truc pr moi.
merci pr votre aide :)




bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 19 March 2006 - 10 h 44 m 47 s
c'est pas la maque de l'écran qui importe, mais le protocole utilisé par l'OS pour afficher les données.
A ton école, tu es aussi sur Windows ? ou sur Unix ou Linux ?

Tu peux tenter la solution que t'a donnée woofy, pour voir, mais en sachant que ça sera pas une méthode reproductible partout.

P.S. : liège -> belgique -> FH s'exporte bien !!! :tut:



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 19 March 2006 - 11 h 54 m 40 s
Va bientôt falloir passer a WH :lol:




Cyberlie


Messages : 19
Inscrit le 10/03/06
Ville : liege
Non connecté
  Posté le 19 March 2006 - 22 h 43 m 10 s
Voila c'est fait j'ai touvé comment résoudre mon problem. :banane:
Merci bcp pr votre aide.
:yes:




Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 19 March 2006 - 22 h 45 m 00 s
On peut savoir comment ?
Ca m'interesse moi aussi la couleur sous windows !




bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 20 March 2006 - 17 h 08 m 31 s


Le 19 mars 2006 - 22 h 45, Woofy a écrit :
On peut savoir comment ?
Ca m'interesse moi aussi la couleur sous windows !

tu veux dire en mode commande sous windows ? parce que sous windows "pur", c'est pas avec des codes comme ça, mais avec des APIs.

Sinon, oui, c'est bien de poster la solution, ça peut aider les autres.



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Cyberlie


Messages : 19
Inscrit le 10/03/06
Ville : liege
Non connecté
  Posté le 21 March 2006 - 17 h 30 m 07 s
J'ai just ajouté un élément a mes fichiers souces.

Commande ds le code:

textcolor(...);
printf("coucoun",); avec a la place des ... le numéro de référence de la couleur

textbackground(...);
printf("coucoun",);

voici le fichier aajouté:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <windows.h>

void textcolor(int color)
{
switch (color)
{
case 0: // White on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED| FOREGROUND_GREEN);
break;
case 1: // Red on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED);
break;
case 2: // Green on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_GREEN);
break;
case 3: // Yellow on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_BLUE );
break;
case 4: // Blue on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN );
break;
case 5: // Magenta on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_BLUE);
break;
case 6: // Cyan on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE);
break;
case 7: // Black on Gray
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY);
break;

default : // White on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
}
}
void tbcolor(int color)
{
switch (color)
{
case 0: // White on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED| FOREGROUND_GREEN);
break;
case 1: // Red on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED);
break;
case 2: // Green on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_GREEN);
break;
case 3: // Blue on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_BLUE );
break;
case 4: // Yellow on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN );
break;
case 5: // Magenta on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_BLUE);
break;
case 6: // Cyan on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE);
break;
case 7: // Black on Gray
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY);
break;
case 8: // Black on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE);
break;
case 9: // Red on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE |
FOREGROUND_RED);
break;
case 10: // Green on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_GREEN);
break;
case 11: // Yellow on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_RED |
FOREGROUND_GREEN);
break;
case 12: // Blue on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_BLUE);
break;
case 13: // Magenta on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_RED |
FOREGROUND_BLUE);
break;
case 14: // Cyan on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_GREEN |
FOREGROUND_BLUE);
break;
case 15: // White on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
default : //White on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
}
}
void textbackground(int color)
{switch (color)
{
case 0: // White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_RED |
BACKGROUND_GREEN | BACKGROUND_BLUE);
break;
case 1: // Red
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_RED);
break;
case 2: // Green
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_GREEN);
break;
case 3: // Yellow
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_RED |
BACKGROUND_GREEN);
break;
case 4: // Blue
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_BLUE);
break;
case 5: // Magenta
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_RED |
BACKGROUND_BLUE);
break;
case 6: // Cyan
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_GREEN |
BACKGROUND_BLUE);
break;
case 7: // Gray
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | BACKGROUND_RED |
BACKGROUND_GREEN | BACKGROUND_BLUE);
break;
case 8: // Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY );
break;
case 9: // Dark Gray
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY );

default : break;
}
}
void clrscr()
{
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize,
coordScreen, &cCharsWritten);
GetConsoleScreenBufferInfo(hConsole, &csbi);
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize,
coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}
void gotoxy(int x, int y)
{
COORD point;
point.X = x; point.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),
point);
}




Cyberlie


Messages : 19
Inscrit le 10/03/06
Ville : liege
Non connecté
  Posté le 21 March 2006 - 17 h 32 m 39 s
OUPS ds le printf y a une tite , de trop.

printf("coucou\n");





Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 21 March 2006 - 17 h 38 m 42 s
Merci pour le bout de code ! :)




c_moi


Messages : 1
Inscrit le 22/12/09
Ville : ici
Non connecté
  Posté le 22 December 2009 - 01 h 03 m 56 s
merci Cyberlie !




Page genérée en 0.5419 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory