2016-02-01 58 views
0

我是C++的新手,我有一個簡單而愚蠢的問題,我希望有人能幫助我! 我有一個字節,例如:如何獲取顯示字節十六進制值的字符串?

uint8_t MyByte = 0x0C; 

,我想將其轉換成與十六進制MyByte值的字符串,在這種情況下「0℃」。 如果我嘗試:

std::string MyString = std::to_string(MyByte); 

我將獲得:MyString的= 「12」;我想獲取MyString = 「0C」,而不是相應的十六進制值。 這可能嗎?

謝謝!

編輯: 我知道有關於提供的鏈接有一個類似的問題,但它是不正確的形式。實際上,如果我嘗試:

std::stringstream stream; 
stream << std::hex << MyByte; 
std::string MyString(stream.str()); 

MyString沒有按預期顯示我。

我只是tryied該解決方案,似乎它的工作:

std::stringstream stream; 
stream << std::hex << (int)MyByte; // cast needed 
std::string MyString(stream.str()); 
std::transform(strBcc.begin(), strBcc.end(),strBcc.begin(), ::toupper); 

回答

2

您可以使用std::ostringstreamstd::hex

std::ostringstream oss; 
oss << std::hex << (int)MyByte; 

要獲得字符串中使用

std::string MyString = oss.str(); 
+0

感謝。這樣,我獲得了MyString =「0c」。有沒有辦法取得「0C」呢? – ASLaser

相關問題