C의 입력에서 16 진수를 읽는 방법은 무엇입니까? [복제]

Nov 20 2020

사용자로부터 16 진수를 읽고 싶습니다. 저는 C99를 사용합니다.

내 생각은 문자를 읽고 문자 코드로 16 진수가 될 수 있는지 확인하는 것이 었습니다.

다음은 코드입니다.

#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;
}

하지만 더 쉬운 방법이 있어야한다고 생각합니다. 하나의 숫자 만 읽을 수 있고 긴 숫자는 읽을 수 없기 때문입니다.

도움이 될만한 것이 있습니까?

답변

nkrivenko Nov 20 2020 at 18:59

scanf를 %x다음 과 함께 사용할 수 있습니다 .

#include <stdio.h>

int main() {
    int a;
    scanf("%x", &a);
    printf("%d", a);
}

산출:

a -> 10
ff -> 255