Comment lire les nombres hexadécimaux à partir de l'entrée en C? [dupliquer]
Nov 20 2020
Je veux lire un nombre hexadécimal de l'utilisateur. J'utilise C99.
Mon idée était de lire un caractère et de vérifier par le code de caractère quel nombre hexadécimal il pouvait s'agir.
Voici le code:
#include <stdio.h>
int main() {
char count;
int c;
printf("Enter hex value:\n");
scanf("%c", &count);
if (count >= 48 && count <= 57) {
c = count - 48;
}
if (count >= 65 && count <= 70) {
c = count - 55;
}
if (count >= 97 && count <= 102) {
c = count - 87;
}
printf("%d", c);
return 0;
}
Mais je pense qu'il devrait y avoir des moyens plus faciles. Parce qu'il ne peut lire qu'un seul nombre et pas des plus longs.
Y a-t-il quelque chose qui pourrait aider?
Réponses
nkrivenko Nov 20 2020 at 18:59
Vous pouvez utiliser scanf avec %x
:
#include <stdio.h>
int main() {
int a;
scanf("%x", &a);
printf("%d", a);
}
Production:
a -> 10
ff -> 255