Valeur d’entrée non valide lors de l’utilisation de char et scanf “% hhu”

C’est donc le code

void main() { unsigned char n,t; scanf("%hhu %hhu",&n,&t); printf("%hhu %hhu",n,t); } 

Le problème est que lorsque I entre 5 et 1 respectivement, la sortie est 0 et 1. 0 pour n et 1 pour t . Cependant, lorsque j’ai changé le type de caractère de char à int / unsigned, la sortie est correcte comme prévu: 5 et 1.

La question est de savoir pourquoi demander une entrée (nombre) avec char donne une valeur non valide.

int main(void) s’il vous plaît

 scanf("%hhu %hhu",&n,&t); 

ici ———- ^ —— ^ caractère unsigned char * attendu

idem pour printf("%hhu %hhu",n,t);

alors change

 char n,t; 

à

unsigned char n,t;

Outre que c’est

 int main(void) 

du moins, vous pouvez également append les prototypes nécessaires en incluant l’en-tête approprié:

 #include