scanf 버그?

익명 사용자의 이미지

다음 코드를 컴파일하고 실행하면 생각했던 것과는 다른 결과가 나온네
요.. 윈도그에서는 제대로 됐는데.... 왜 이러는지 아시는분.

참고로 Debian 2.2 씁니다.

#include

int main()
{
unsigned char ch1, ch2;

while (1) {
printf("Enter two hex numbers(ff or less) ");
scanf("%x %x", &ch1, &ch2);
printf("%02x & %02x = %02x\n", ch1, ch2, ch1 & ch2);
}

return 0;
}

익명 사용자의 이미지

결과 값이 어떻고 입력값이 어떤지를 먼저 알려줘야 하지 않나여??

익명 사용자의 이미지

ch1과 ch2를 unsigned int type으로 선언하셔야죠.

scanf()는 16진수 인자 받을 때 unsigned int type을 요구합니다.