Problème d'Ascii

Arecibo Messages postés 124 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 30 juillet 2003 - 4 juil. 2003 à 13:17
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 4 juil. 2003 à 13:58
Je sais que je dois commencer à vous emm***er avec l'Ascii mais bon, j'ai encore un problème.
Mon programme est censé agir ainsi lors d'un click sur le bouton :
- récupérer le 1er caractère de l'editbox
- trouver son code Ascii
- Créer une joli phrase avec strcat
- Afficher cette phrase (contenant le code ascii)

J'ai donc ce code pour l'instant :

char Chr[2];
char Mess[19] = "Le code Ascii de ";
char MsgPart[6] = " est ";
GetDlgItemText(hwnd,IDC_CHR,Chr,2);
int Asc = *Chr;
char CAscii[2] = "";
itoa(Asc,CAscii,10);
strcat(Mess,Chr);
strcat(Mess,MsgPart);
strcat(Mess,CAscii);
MessageBox(NULL,Mess,"ASCII",MB_OK);

Mais lors de l'éxécution j'ai remarqué un truc bizarre : les codes Ascii sembles symétriques. Je m'explique, lorsque l'on saisi dans l'editbox un caractère <= à 127 tout va bien, mais a partir de 128 les codes ascii passent en négatif. Viola un peu ce que ca donne :

pour un caractère de code Ascii réél 1 ça renvoie 1
et ainsi de suite [2 ---> 125]
pour un caractère de code Ascii réél 126 ça renvoie 126
pour un caractère de code Ascii réél 127 ça renvoie 127
pour un caractère de code Ascii réél 128 ça renvoie -128
pour un caractère de code Ascii réél 129 ça renvoie -127
pour un caractère de code Ascii réél 130 ça renvoie -126
et ainsi de suite [-125 ---> -2]
pour un caractère de code Ascii réél 255 ça renvoie -1

Il y a comme une symétrie dans les codes ascii obtenus et je ne sais pas pourquoi.

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juil. 2003 à 13:25
ultoa en NON itoa !!!
BruNews, ciao...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
4 juil. 2003 à 13:48
ne les declare pas en char mais en unsigned char !!

et char Mess[19], 19 n'est pas suffisant !!
:-p :sleepy) :shy) :sleepy) :-p
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juil. 2003 à 13:54
Mess[19] n'est en tout cas pas bon, tu dois mettre un multiple de 4 pour forcer l'alignement des donnees.
si tu as besoin de 23 prend l'habitude de mettre 24 et ne presume pas que le compilo sera intelligent a ta place.
BruNews, ciao...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
4 juil. 2003 à 13:58
Heu ... il faut tjrs l'allignes
(moi c'est pas grave je fais tjrs 256 !)
:-p :sleepy) :shy) :sleepy) :-p
0
Rejoignez-nous