2012-12-06 75 views
0

我想將字符串值轉換爲其十六進制格式,但無法執行。 以下是我正在嘗試執行的C++代碼片段。如何將字符串轉換爲十六進制值

#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; 
} 
相關問題