Voila comment utiliser les couleur sans conio.h :
#ifndef linux #include <windows.h> #endif #include <stdio.h> #includes <stdarg.h>
typedef enum e_color { NOIR,// noir BLEU, // bleu VERT, // vert CYAN, // cyan ROUGE=4, // rouge ROSE, // rose JAUNE=6, // jaune BLANC // blanc } COULEUR; #elif defined(linux) typedef enum e_color { NOIR, // noir ROUGE=1,// rouge VERT=2, // vert JAUNE=3,// jaune BLEU, // bleu ROSE, // rose CYAN, // cyan BLANC=7 // blanc } COULEUR;
void Show(int p_nColor, const char *p_szBuffer, ...){ char l_szBuffer[256]; va_list ap; va_start(ap, p_szBuffer); vsprintf(l_szBuffer, p_szBuffer, ap); va_end(ap);
#if !defined LINUX HANDLE hCmd = NULL; CONSOLE_SCREEN_BUFFER_INFO consoleInfo;
hCmd = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hCmd, &consoleInfo); SetConsoleTextAttribute(hCmd, (short)(p_nColor | FOREGROUND_INTENSITY)); //
printf(l_szBuffer); SetConsoleTextAttribute(hCmd, consoleInfo.wAttributes); #elif defined LINUX printf("\033[3%dm %s \033[m", p_nColor, l_szBuffer); #endif }
Tu peu changer FOREGROUND_INTENSITY en BACKGROUND_INTENSITY je crois. Documente toi sur SetConsoleTextAttribute avec la msdn.
Je suis pas sur à 100% pour les includes mais sa devrait marcher.
|