Caractèes accentués

Signaler
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004
-
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004
-
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

Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
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..."
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

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
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

Heu désolé, un seul backslash suffit...

=> \202 pour le 'é'.

Chouchou
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004

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.
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
11
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..."
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
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é
Messages postés
114
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
28 juin 2004

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....
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004

OK les gars, tout ça fonctionne correctement.

Merci.
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004

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.
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004

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.
Messages postés
59
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
15 mai 2006

//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 !
Messages postés
35
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
14 mai 2004

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 ?