Couleur console [Résolu]

sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 17 mars 2006 à 10:14 - Dernière réponse :  cdc1604
- 15 janv. 2008 à 11:03
commen fait ton pour changer par exemple tte la couleur de la console
pour changer un caractere une chaine ds la console
Afficher la suite 

Votre réponse

21 réponses

Meilleure réponse
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 17 mars 2006 à 18:19
3
Merci
Désolé, j'etais pas la cet apres midi.
Donc HANDLE dans windows.h, et csbiInfo de type CONSOLE_SCREEN_BUFFER_INFO.
Voir MSDN pour plus d'infos. Si d'autres problemes d'utilisation, ne pas hésiter, marche tres bien chez moi.

Pour Linux, regarder les caractères d'échappements. (juste une petite note si jamais qqun tombe sur le topic et cherche pour linux).

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]

Merci julienbj 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de julienbj
Meilleure réponse
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 18 mars 2006 à 14:44
3
Merci
Pour effacer un caractère, tu n'as qu'a réécrire sur ce caractère un espace. Tu peux te positionner à un endroit dans la console,tu peux utiliser la fonction SetConsoleCursorPosition.

Pour linux, non, il n'y a pas le fichier d'en tete windows.h et les fonctions que je te décris n'existe pas sous linux.
Voici quelques caractères d'échappement qui te permettent de faire de la couleur, ou de te positionner sous une console linux:

//Premier plan
'\033[30m black \033[m'

'\033[31m red \033[m'

'\033[32m green \033[m'

'\033[33m yellow \033[m'

'\033[34m blue \033[m'

'\033[35m magenta \033[m'

'\033[36m cyan \033[m'

'\033[37m white \033[m'

//Arrirere plan
'\033[40m black \033[m'

'\033[41m red \033[m'

'\033[42m green \033[m'

'\033[43m yellow \033[m'

'\033[44m blue \033[m'

'\033[45m magenta \033[m'

'\033[46m cyan \033[m'

'\033[47m white \033[m'

Par contre je ne retrouve plus celle pour se positionner, je regarde et te dis des que je l'ai retrouvé.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]

Merci julienbj 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de julienbj
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 17 mars 2006 à 11:37
0
Merci
Regarde SetConsoleTextAttribute.
Voici un exemple d'utilisation:

void ecrireCar(int couleur, char caractere)
{
HANDLE HCmd = GetStdHandle(STD_OUTPUT_HANDLE); //on creer un handle de sortie sur le cmd.

GetConsoleScreenBufferInfo(HCmd, &csbiInfo); //on prends les infos du cmd et on les stocks
SetConsoleTextAttribute(HCmd, (short) (couleur | FOREGROUND_INTENSITY));
printf("%c", caractere);
SetConsoleTextAttribute(HCmd, csbiInfo.wAttributes); // on remet les anciens attributs au cmd
}

Pour les infos de couleur, il n'y a que trois valeurs possibles, mais en les mélangeant, tu arrives à 8 couleurs différentes:
FOREGROUND_RED; FOREGROUND_GREEN; FOREGROUND_BLUE 


Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj
wxccxw 759 Messages postés samedi 15 mai 2004Date d'inscription 30 janvier 2011 Dernière intervention - 17 mars 2006 à 12:32
0
Merci
sinon pour toute la console,

system("color 0A");

qui te fera, un fond noir 0 et un text vert fluo A voila :)
Commenter la réponse de wxccxw
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 17 mars 2006 à 13:50
0
Merci
HANDLE C'est dans quelle bibliothèques
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 17 mars 2006 à 14:03
0
Merci
je pense que c ds windows.h a oui, il faut le declarer ds le main de quel type? csbiInfo
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 17 mars 2006 à 14:46
0
Merci
le compilateur ne reconnait pas csbiInfo
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 17 mars 2006 à 14:52
0
Merci
C BON JAI RESOLU LE PB
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 18 mars 2006 à 13:47
0
Merci
commen fait ton pour effacer un caractere sur la console
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 18 mars 2006 à 13:48
0
Merci
la je boss sur devc est ec que sur linux ya la biblio windows.h???
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 18 mars 2006 à 15:40
0
Merci
Sous linux si par exemple je me resers de la biblio windows.h je la met ds mon repertoire et je la lapelle de la maniere suivante sds mon prog #include"windows.h"
est ce que je pourrais utiliser le schangements de couleurs???
car mon projet devra etre fais sur linux mon professeur veriffira si sa marche bien sur linux il compilera sir linux(lol la je croi que tt le mon de a compris
Commenter la réponse de sy3ns
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 18 mars 2006 à 16:34
0
Merci
Non, c'est impossible.
windows.h porte bien son nom, elle est définie pour windows. Elle fait appel à des fonctions qui sont dans des librairies et dll qu'on ne trouve que sous windows, pas sous linux.
Sous linux, le seul moyen de faire que je connaisse c'est de passer par les séquences d'échappement. Sinon, il doit bine y avoir quelques librairies graphiques pour linux qui permettent de le faire, mais ce ne sera que compliqué la chose.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 18 mars 2006 à 21:30
0
Merci
commen on se sert de ces caracteres despacement

'\033[46m cyan \033[m'
comme sa printf("
%d",033[46m cyan \033[m');
lol je sais pas trop
a oui o faite system("cls");
ezst ce qu'on peut utiliser cette instruction sous linux
Commenter la réponse de sy3ns
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 18 mars 2006 à 21:43
0
Merci
system("clear"); sous linux.
J'ai retrouvé sous linux comment se déplacer dans la console, tu adapteras avec les autres séquences d'échapemment.
#define gotopos(x, y) printf("\033[%d;%dH", x, y)

donc pour mettre ton texte en rouge par exemple
#define red() printf("\033[31m");
Il me semble que ca doit marher, ca fait un bail que j'ai pas fait de console linux, et j'ai pas mes vieux exemples sous la main. Si c'est pas ca, tu redemandes, je te dirais Lundi.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 19 mars 2006 à 00:55
0
Merci
'\033[40m black \033[m'
'\033[41m red \033[m'
'\033[42m green \033[m'
'\033[43m yellow \033[m'
'\033[44m blue \033[m'
'\033[45m magenta \033[m'
'\033[46m cyan \033[m'
'\033[47m white \033[m'

est ce qu'on pe tester sa sur dec++ car je boss sur devc je devré ladapter sur unix ensuite ms lessentiel c que sa marche sur linux
et est ce quil fo une Biblio pr utiliser ces instruction
#define red() printf("\033[31m");
puis ds le main je met
red();
le pb c que a la compilation jobtient
Commenter la réponse de sy3ns
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 19 mars 2006 à 01:10
0
Merci
Ben pour tester ces fonction,s faudra que tu developpes sous linux. A la limite tu as cygwin qui emule un linux sur windows.
Tu te fais un fichier d'en tete (fichier avec extension en .h) dans lequel tu mets les differents define dont tu as besoin.
Ca sert a rien de dev sur windows si ca doit touirner sous linux, tu peux rien tester. Ou alors tu developpes que avec du C standard et tu oublies toutes les particularités des systemes, ca veut aussi dire pas de couleurs.
Voila, je peux pas dire grand chose d'autre. POur l'aspect graphique, ben tu regarderas quand tu pourras etre sous linux, sinon c'est meme pas la peine.

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Commenter la réponse de julienbj
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 19 mars 2006 à 10:42
0
Merci
MERCI
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 28 mars 2006 à 12:35
0
Merci
jai ENCOR un petit probleme je vien de passer sur MANDRIVA
et je dois adapter tt ce que jai fé sur cette distribution
deja pour effacer tout ce qu'il y a sur la console je me servais sous devc ++ de system("cls"); sa marchait
mais maintenant quand je fais sous linux system("clear") sa marche pas il se passe rien
jai mem essayer system(" reset"); IDEM
a oui aussi pour afficher un texte au fur et a mesure je me servait
entre chque caratere de
sleep(255) sous time.h
et la a lidentique sa marche plus
sinon pour els couleur j'y arriV si qqun PEUT MAIDER
Commenter la réponse de sy3ns
sy3ns 80 Messages postés lundi 20 février 2006Date d'inscription 16 avril 2008 Dernière intervention - 29 mars 2006 à 20:06
0
Merci
REPONDAIT MOIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
Commenter la réponse de sy3ns
julienbj 458 Messages postés jeudi 4 décembre 2003Date d'inscription 19 décembre 2008 Dernière intervention - 29 mars 2006 à 21:24
0
Merci
Je suis désolé, mais MANDRIVA je connais pas du tout.
Je suis surpris que le system("clear") ne marche pas. Il me semblait que ça devait fonctionner sous tout linux.

Vive le C Tchao ["mailto:julienbj@hotmail.com" Savon]
Commenter la réponse de julienbj

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.