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");
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'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
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
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?
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.