E accent ou aigu [Résolu]

sokotanic 116 Messages postés mercredi 22 novembre 2006Date d'inscription 19 mai 2012 Dernière intervention - 17 juil. 2007 à 06:58 - Dernière réponse : katsankat 577 Messages postés vendredi 30 décembre 2005Date d'inscription 12 juillet 2012 Dernière intervention
- 19 juil. 2007 à 21:52
bonjour
comment je peux ecrire dans une application console E accent ou aigu (é ou à ou ç ou à ...) sans passé par l'API windows ?
merci .
Afficher la suite 

Votre réponse

27 réponses

Meilleure réponse
Yunchi 100 Messages postés lundi 30 octobre 2006Date d'inscription 14 avril 2009 Dernière intervention - 17 juil. 2007 à 11:39
3
Merci
tu peux mettre %c et ensuite mettre le code ascii de é ou à ou ç ou à

Merci Yunchi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de Yunchi
Meilleure réponse
katsankat 577 Messages postés vendredi 30 décembre 2005Date d'inscription 12 juillet 2012 Dernière intervention - 17 juil. 2007 à 14:24
3
Merci
Salut,
On peut mettre la valeur ASCII du caractère en octal ou en hexadécimal, précédée d'un slash.
Exemple: 'é' est l'ASCII 233, soit 202 en octal
printf("\202");

Merci katsankat 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de katsankat
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 01:14
2
Merci
Bonjour,

La syntaxe c'est dans une chaine un antislash suivit de x et du code hexa.

Exemple avec é :
cout << "\x82";

Voilà une petite liste non exaustive :

ü : \x81
é : \x82
â : \x83
ä : \x84
à : \x85
ç : \x87
ê : \x88
ë : \x89
è : \x8A
ï : \x8B
î : \x8C

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 17:54
1
Merci
Bonjour,

Dans ce cas tu sépare :
    cout << "\x82" << "cole;

et ça marche !

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
sokotanic 116 Messages postés mercredi 22 novembre 2006Date d'inscription 19 mai 2012 Dernière intervention - 18 juil. 2007 à 06:26
0
Merci
merci
Commenter la réponse de sokotanic
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 11:32
0
Merci
De rien.

@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 18 juil. 2007 à 16:57
0
Merci
La syntaxe de katsankat est la bonne.
À titre d'explication, voici 2 printf

printf("\202cole\n");

printf("\x82cole\n");

Le premier affichera bien école dans la console.
Le second génèrera une erreur à la compilation. Pourquoi ? Parce que le compilateur croira que le c de école fait aussi parti de la valeur hexadécimal. On atteindra donc la valeur 2092 ce qui est bien trop haut pour un char.

C++ (@++)
Commenter la réponse de SAKingdom
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 18 juil. 2007 à 17:56
0
Merci
Ce post est dans le thème C.

C++ (@++)
Commenter la réponse de SAKingdom
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 18:00
0
Merci
Bonjour,

Oui mais on peut sans pb l'adapter au C :
    printf("\x82%s","cole");

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 18 juil. 2007 à 18:05
0
Merci
Aussi bien utiliser la première solution apporté dans ce cas.

printf("%ccole", 0x82);

C++ (@++)
Commenter la réponse de SAKingdom
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 18:22
0
Merci
Bonjour,

On n'est pas là pour se disputer la solution a été apportée et c'est bon de connaître plusieurs solutions en connaissant leur spécificité.

La mienne si la lettre qui suit est compris entre a et e (inclu) a besoin d'une séparation sinon non.

De plus j'ai donné une petite liste, quand on débute on aime bien avoir une liste toute faite que devoir aller chercher une table ASCII.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 18 juil. 2007 à 18:40
0
Merci
Personne ne se dispute.

C'est bien de fournir une liste mais Windows possède déjà une table ASCII toute prête dans
Accessoires->Outils système. Suffis de mettre le jeu de caractère sur DOS États-unis et voilà.

"La mienne si la lettre qui suit est compris entre a et F ..."

Il y a un autre moyen d'utiliser ta méthode sans faire tout se bric à brac

#define X82 "\x82"

printf(X82"cole");

ou encore

printf("\x82""cole");

C++ (@++)
Commenter la réponse de SAKingdom
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 20:45
0
Merci
Bonjour,

Partie 1 : Là j'avoues tu me l'apprend mais c'est la police Terminal qu'il faut utiliser.

Partie 2 : Est-on obligé de faire un define ?
ou Ne peut-on pas l'inclure en tant que variable chaîne ?

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 18 juil. 2007 à 21:09
0
Merci
Attention, je parlais du Jeu de caractère (clique sur Affichage avancé en bas) et non de la Police mais ça revient au même.

Pour ta question, je ne la comprend pas. Que veux-tu dire par "variable chaîne" ?

C++ (@++)
Commenter la réponse de SAKingdom
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 18 juil. 2007 à 21:11
0
Merci
Bonjour,
char* X82 = "\x82";
printf(X82"cole");
ça ne fontionne pas

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 18 juil. 2007 à 21:21
0
Merci
Oui c'est normal. Tu passe un pointeur suivit d'un autre pointeur. Le compilo n'y comprend plus rien.

Avec un #define ou en faisans "\x82""cole", les deux chaines sont d'abords assemblé puis une adresse unique est généré. On s'en rend bien compte en consultant le listing:

$SG102096 DB    082H, 'cole', 0aH, 00H

$SG102096 -> Il s'agit de l'adresse utiliser dans le code ASM
DB -> Qui veux dire Data Bytes je crois. Il s'agit donc d'octets.
082H -> C'est le é.
'cole' -> Le reste de la chaine
0aH -> C'est le \n.
00h -> C'est le 0 de fin de chaine

C++ (@++)
Commenter la réponse de SAKingdom
katsankat 577 Messages postés vendredi 30 décembre 2005Date d'inscription 12 juillet 2012 Dernière intervention - 19 juil. 2007 à 00:54
0
Merci
Cette discussion me donne l'idée de créer une fonction printf modifiée pour afficher les accents, spécialement pour windows puisque question console Linux assure à mort. Un coup de va_list va_arg ... Qui est partant?
Commenter la réponse de katsankat
victorcoasne 1100 Messages postés jeudi 24 avril 2003Date d'inscription 17 octobre 2012 Dernière intervention - 19 juil. 2007 à 00:57
0
Merci
Bonjour,

J'ai déjà créé une fonction que j'utilise et qui transforme les caractères spéciaux passés en chaîne des caractère format Win32 au format DOS. Elle est quelque part sur mon Disque Dur.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Commenter la réponse de victorcoasne
katsankat 577 Messages postés vendredi 30 décembre 2005Date d'inscription 12 juillet 2012 Dernière intervention - 19 juil. 2007 à 01:17
0
Merci
Allez go. J'ai commencé mais si c'est déjà fait partager.
Commenter la réponse de katsankat
SAKingdom 3213 Messages postés lundi 7 novembre 2005Date d'inscription 16 février 2009 Dernière intervention - 19 juil. 2007 à 01:30
0
Merci
Ben c'est pas très difficile à faire:

void convertspecchrs (char *string)
{
    while(*string) {
        switch(*string) {
            case 'ü': *string = 0x81; break;
            case 'é': *string = 0x82; break;
            case 'â': *string = 0x83; break;
            case 'ä': *string = 0x84; break;
            case 'à': *string = 0x85; break;
            case 'ç': *string = 0x87; break;
            case 'ê' : *string = 0x88; break;
            case 'ë' : *string = 0x89; break;
            case 'è' : *string = 0x8A; break;
            case 'ï' : *string = 0x8B; break;
            case 'î' : *string = 0x8C; break;
            // etc etc...
        }
        string++;
    }
}

C++ (@++)
Commenter la réponse de SAKingdom

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.