2012-12-06 7 views
0

문자열 값을 16 진수 형식으로 변환하려고하지만 할 수 없습니다. 다음은 내가하려고하는 C++ 코드 조각입니다.문자열을 16 진수 값으로 변환하는 방법

#include <stdio.h> 
#include <sys/types.h> 
#include <string> 
#define __STDC_FORMAT_MACROS 
#include <inttypes.h> 

using namespace std; 

int main() 
{ 

    string hexstr; 
    hexstr = "000005F5E101"; 
    uint64_t Value; 
    sscanf(hexstr.c_str(), "%" PRIu64 "", &Value); 
    printf("value = %" PRIu64 " \n", Value); 

    return 0; 
} 

출력이 5이며 올바르지 않습니다.

도움을 주시면 감사하겠습니다. 감사합니다, Yuvi

+0

http://stackoverflow.com/questions/3381614/c-convert-string-to-hexadecimal-and-vice-versa을 – Raptor

답변

2

당신이 작성하는 경우 C++, 왜 당신도 sscanfprintf 사용을 고려까요? 고통을 피하고 단지 stringstream 사용

int main() { 

    std::istringstream buffer("000005F5E101"); 

    unsigned long long value; 

    buffer >> std::hex >> value; 

    std::cout << std::hex << value; 
    return 0; 
} 
1
#include <sstream> 
#include <string> 

using namespace std; 

int main(){ 

    string myString = "45"; 
    istringstream buffer(myString); 
    uint64_t value; 
    buffer >> std::hex >> value; 

    return 0; 
} 
관련 문제