katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 17 juil. 2007 à 14:24
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");
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 18 juil. 2007 à 16:57
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.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 18 juil. 2007 à 18:40
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
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 18 juil. 2007 à 21:21
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
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 19 juil. 2007 à 00:54
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?
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 19 juil. 2007 à 00:57
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.