Caractèes accentués

raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004 - 25 avril 2004 à 16:51
raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004 - 27 avril 2004 à 08:05
J'essai d'afficher les caractères accentués en mode console ... il y a plein de blaba sur le forum à ce sujet et des mecs qui se moquent des programmeurs qui font de la console, mais concretement, il n'y a aucune ligne de code qui marche et qui permet de le faire vraiment ... C'est facile de se moquer des autres !

Est ce que quelqu'un d'avertis sait comment faire, ainsi que de changer la couleur du texte afiché, soit en C soit en C++

Merci pour une réponse concrète.

12 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
25 avril 2004 à 16:54
pour les caractéres accentué tu peux les affichant et t'aidant de leur valeur ascii...
pour la couleur, il y avait un post y a pas longtemps sur ca !!! je lui avait dit qu'il y a des librairies sur le site qui permette de faire ca facilement, cherche sconio.h ou des trucs comme ca !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
25 avril 2004 à 16:59
Hello
Pour afficher un caractère accentué (ou plus précisément compris entre 128 et 255 inclus) il faut le remplacer par un backslash (\\) suivi du code ASCII du caractère en octal et sur trois chiffres.

Ex: "Il \\202t\\202 une fois, ...."

J'ai remarqué que cette méthode ne marche pas sous Linux... Alors si quelqu'un a la solution....

A++

Chouchou
0
cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
25 avril 2004 à 17:03
Heu désolé, un seul backslash suffit...

=> \202 pour le 'é'.

Chouchou
0
raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004
25 avril 2004 à 17:09
Haaaa!!!

Pour les caractères accentés, ça c'est simple et ça marche, Merci chouchou !

Pour la couleur, c'est pas simple, Bob pour un débutant de trifouiller dans les librairies, mais je vais essayer quand même...

Xav.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
25 avril 2004 à 17:22
c'est pourtant pas compliqué tu telecharge sconio.h et tu le met dans le repertoire de ton code source... dans ton code tu ecrit:

#include "sconio.h"


ensuite pour avoir un texte rouge, souligné en noir (en admettant que tu es le fond noir pour pas que ca se voit), tu fait:

textcolor(4, 0); 


4 correspond a la couleur rouge et 0 au noir, mais tout cela est décrit sur la page de sconio.h
ensuite pour afficher le texte tu affiche comme tout le fait normalement...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
25 avril 2004 à 18:05
sinon pour la couleur, moi j'utiliser system("color 41"); avec la lib windows.h
4 = couleur de font , ici bleu-gris
1 = couleur de texte , ici bleu-foncé
0
petitchech Messages postés 114 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juin 2004
25 avril 2004 à 19:27
tu peut faire comme sa sinon :

CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
HANDLE HCmd = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(HCmd, &csbiInfo);

SetConsoleTextAttribute(HCmd, FOREGROUND_RED|FOREGROUND_INTENSITY);
printf....
0
raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004
26 avril 2004 à 09:04
OK les gars, tout ça fonctionne correctement.

Merci.
0
raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004
26 avril 2004 à 09:40
En fait c'est pas si clair :

textcolor(A, B) fonctionne bien, mais en incluant la lib sconio.h, la lib io.h h dont j'ai besoin n'est pas correctement interpréter, y'a conflit.

La fonction system("color 0xB0xA") avec windows.h fonctionne, mais elle change la couleur du texte entier de la console, moi je veux changer la couleur du texte à afficher sans changer la couleur du texte déjà affiché.

Quand à SetConsoleTextAttribute, je pense que c'est ce qui fonctionne le mieux par rapport à mes besoins.
0
raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004
26 avril 2004 à 09:41
En fait c'est pas si clair :

textcolor(A, B) fonctionne bien, mais en incluant la lib sconio.h, la lib io.h h dont j'ai besoin n'est pas correctement interpréter, y'a conflit.

La fonction system("color 0xB0xA") avec windows.h fonctionne, mais elle change la couleur du texte entier de la console, moi je veux changer la couleur du texte à afficher sans changer la couleur du texte déjà affiché.

Quand à SetConsoleTextAttribute, je pense que c'est ce qui fonctionne le mieux par rapport à mes besoins.
0
errikke Messages postés 59 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 15 mai 2006
26 avril 2004 à 19:46
//Une solution sans conio ...

#include <windows.h>

// Définition du handle du buffer de la console écran

const HANDLE MaConsoleEcran = GetStdHandle(STD_OUTPUT_HANDLE);

// Définitions des couleurs :

const int NOIR = 0;
const int GRIS = FOREGROUND_INTENSITY;
const int ECRU = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
const int BLANC = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY;
const int BLEU = FOREGROUND_BLUE ;
const int BLEU_VIF = FOREGROUND_BLUE | FOREGROUND_INTENSITY;
const int ROUGE = FOREGROUND_RED;
const int ORANGE = FOREGROUND_RED | FOREGROUND_INTENSITY;
const int VERT = FOREGROUND_GREEN ;
const int VERT_VIF = FOREGROUND_GREEN | FOREGROUND_INTENSITY;
const int MARRON = FOREGROUND_RED | FOREGROUND_GREEN;
const int JAUNE = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
const int VIOLET = FOREGROUND_RED |FOREGROUND_BLUE;
const int VIOLET_VIF = FOREGROUND_RED |FOREGROUND_BLUE | FOREGROUND_INTENSITY;
const int CYAN = FOREGROUND_BLUE | FOREGROUND_GREEN;
const int CYAN_VIF = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY;

int fond = NOIR; // Les couleurs par défaut
int texte = BLANC;

//******************************************************************************************
// DEFINITIONS DES FONCTIONS
//******************************************************************************************

//------------------------------------------------------------------------------------------
// Fonction void CouleurTexte Mets en couleur le texte affiché selon les arguments fournis
//------------------------------------------------------------------------------------------
void CouleurTexte( int CouleurTexte )
{
texte = CouleurTexte;
SetConsoleTextAttribute (MaConsoleEcran, texte | fond);
} //----------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------
// Fonction void CouleurFond Mets en couleur le fond selon les arguments fournis
//------------------------------------------------------------------------------------------
void CouleurFond( int CouleurFond )
{
fond = CouleurFond * 0x0010 ;
// ou fond = CouleurFond * 16; (cette solution est la moins rapide)
// ou fond = CouleurFond << 4; (cette solution est la plus rapide ; vous pourrez souvent la
// trouver dans les librairies conio.h)

SetConsoleTextAttribute (MaConsoleEcran, texte | fond);
}//-----------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------
// Fonction void CouleurFondTexte Mets en couleur le texte affiché et le fond selon les arguments fournis
//------------------------------------------------------------------------------------------
void CouleurFondTexte( int CouleurFond, int CouleurText )
{
fond = CouleurFond * 0x0010 ;
texte = CouleurText;

SetConsoleTextAttribute (MaConsoleEcran, texte | fond );

}//-----------------------------------------------------------------------------------------

// L'instruction CouleurFondTexte(BLEU,ROUGE) mettra un texte rouge sur un fond bleu, par ex...

Bon courage

PS ; Quand au mode console, ne te fais pas trop de soucis ; il faut bien commencer !
0
raidentr Messages postés 35 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 14 mai 2004
27 avril 2004 à 08:05
Merci pour ton code qui fonctionne parfaitement, il est très clair.

Merci pour tes encouragements...je trouve pour l'instant que tout ce qui est relatif à l'affichage sous winbdows en C++ est ultra hermétique, je ne sais pas par quel bout commencer. Je me rend compte que pour afficher juste un texte ou paramétrer un controle, il faut une rafale de lignes de codes, non ?
0
Rejoignez-nous