Bonjour,
dans une boucle, je lit des char. Normalement, ces chars devraient être des caractères imprimable, mais je m'aperçois que ce n'est pas le cas. Pour comprendre ce qui se passe, j'affiche donc le char (supposé imprimable) et le caractères hexa correspondant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char* buffer; /* ... code ...*/ printf("char: [%c] [%02X]\n", buffer[0], buffer[0]);
dans une boucle, voici ce qui s'affiche:
Et ma question c'est: pourquoi ça affiche [FFFFFFF9] au lieu de [F9]?char: [R] [52]
char:[*] [2A]
char: [U] [55]
char: [ù] [FFFFFFF9]
J'ai mis un breakpoint pour voir ce qu'il y avait à l'adresse de buffer[0]:
j'ai bien F9. devant il y a des 00 00 00 et derrière des cd cd cd cd.
Je me suis dit que ça devait venir du fait que mes char sont des "signed char" et donc comme il y a un F, l'affichage remplit avec des F, mais si je met:
ça ne change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 printf("char: [%c] [%02X]\n", buffer[0],(unsigned char*) buffer[0]);
Quelqu'un a-t'il une explication?
Et comment faire pour que ça affiche [F9] simplement?
merci d'avance
Partager