Utilisation de la oculeur sous windows et linux [Résolu]

Signaler
Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
-
Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
-
Bonsoir à tous,

Je voudrais savoir si il y a un moyen d'utiliser de la couleur dans la console DOS donc souw windows et la console Linux.

J'ai trouvé plusieurs sources sur ce site, mais je voudrais une solution qui soit portable is possible.

Merci d'avance.

8 réponses

Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

Une simple piste, mais sous linux c'est un code de couleur inséré dans le texte il me semble.

http://laptopgun.blogspot.com/
<
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
1
Salut

J'ai deja posé cette question sur le forum. Pour linux c'est simple t'as qu'a passer un code special.

m_conio.h:
/*m_conio header file*/

#define M_BLACK_EX 30
#define M_RED_EX 31
#define M_GREEN_EX 32
#define M_YELLOW_EX 33
#define M_BLUE_EX 34
#define M_PURPLE_EX 35
#define M_CYAN_EX 36
#define M_WHITE_EX 37

#define M_BLACK 90
#define M_RED 91
#define M_GREEN 92
#define M_YELLOW 93
#define M_BLUE 94
#define M_PURPLE 95
#define M_CYAN 96
#define M_WHITE 97

#define M_NORMAL 0
#define M_BOLD 1

void set_color(int,int);
void reset_color();

m_conio.c :
#include <stdio.h>

void set_color(int a, int b)
{
printf("\x1B[%d;%dm",a,b);
}

void reset_color()
{
printf("\x1B[0m");
}

Pour windows c'est unpeu plus chiant car il faut utiliser les APIs.


et pour placer le curseur a un endroit donné de la console j'ai ca:

#ifdef WIN32

/*APIs used only by windows*/

#include <windows.h>

#endif


#ifdef WIN32

    /*Windows version*/

    void gotoxy(SHORT x, SHORT y)

    {

        COORD coord;

        HANDLE  HCmd;


        coord.X = x;

        coord.Y = y;

        HCmd= GetStdHandle(STD_OUTPUT_HANDLE); //on creer un handle de sortie sur le cmd.

        SetConsoleCursorPosition(HCmd, coord);

    }

#else

    /*Unix version*/

    void gotoxy(int X, int Y)

    {

        printf("\x1b[%d;%dH",X,Y);

    }

#endif

goast_tu

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
1
Ah j'ai oublié le changement de couleurs pour windows:

void textattr(int _attr) {

     SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), _attr);

}

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
N'existe pas cette utopie de portable, c'est écrire chaque code dans des #ifdef" dans un même fichier au lieu de faire du propre pour chacun dans des différents dossiers.

ciao...
BruNews, MVP VC++
Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
4
Salut,

Merci pour ta réponse.
Et pour qu'elles sont les fonctions pour windows et pour linux pour la couleur ?

Merci d'avance.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Regarde dans MSDN partant de SetConsoleTextAttribute() et tu auras le reste.
Me semble qu'il y a deja source sur cela sur cppfrance:
http://www.google.com/custom?domains=cppfrance.com&q=SetConsoleTextAttribute&sa=Rechercher&sitesearch=cppfrance.com

ciao...
BruNews, MVP VC++
Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
4
Merci de ton aide, vais voir cela pour Windows, et pour linux faut que je cherche à quoi sur google ?
Messages postés
256
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
30 mai 2016
4
Merci pour vos réponses.