str2hex

devk의 이미지

void str2hex(const char s[], char dest[], int n) 
{ 
    // 주어진 문자열을 헥사코드 형태로 출력한다. 

    for(int i = 0;n-->0;s++, i += 2){ 
     sprintf(dest + i, "%0.2x", *s); 
    } 
}

이진파일을 읽어서 hex코드로 나타내고자 합니다.

그런데 저 코드를 사용시에 중간에 1개의 문자가 FF로 바뀐다던지 중간에 FFFFFF 같은게 껴서 출력됩니다..

왜 그런건지 잘 모르겠습니다..

잘못된점을 좀 알려주세요 ( __) 그리고 더 나은 코드가 있으시다면.. 부탁드리겠습니다.

정태영의 이미지

unsigned char 로 해보세요

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

devk의 이미지

void str2hex(const char s[], char dest[], int n) 
{ 
    // 주어진 문자열을 헥사코드 형태로 출력한다. 

    for(int i = 0;n-->0;s++, i += 2){ 
   sprintf(dest + i, "%0.2x", (unsigned char)*s); 
    } 
}

이렇게 하니 잘 되는군요 :) 감사합니다.
좋은거 하나 새로 알았습니다~