2009-08-10 6 views
14

मेरे पास एक मौजूदा std :: स्ट्रिंग और एक int है। मैं स्ट्रिंग को int जोड़ना चाहता हूं, लेकिन बाइनरी गिबरिश के बजाय मानव पठनीय रूप (हेक्स नोटेशन) में।मैं हेक्स प्रारूप में std :: स्ट्रिंग में डेटा कैसे जोड़ सकता हूं?

आम तौर पर, मैं सिर्फ printf का उपयोग करना चाहते हैं, लेकिन मैं एक std :: स्ट्रिंग (मैं? सकते हैं)

कोई सुझाव के रूप में कैसे यह करने के लिए के साथ ऐसा नहीं कर सकते?

Example: 
Given: 
    std::string - "Your Id Number is: " 
    int - 0xdeadc0de 
Output: 
    std::string - "Your Id Number is: 0xdeadc0de" 

उत्तर

30

स्ट्रिंगस्ट्रीम का उपयोग करें। आप इसे किसी अन्य आउटपुट स्ट्रीम के रूप में उपयोग कर सकते हैं, ताकि आप इसे std::hex में समान रूप से सम्मिलित कर सकें। फिर इसे stringstream::str() फ़ंक्शन निकालें।

std::stringstream ss; 
ss << "your id is " << std::hex << 0x0daffa0; 
const std::string s = ss.str(); 
+5

std :: showbase एसटीडी :: हेक्स वास्तव में "0x" के साथ पूर्णांक के प्रतिनिधित्व लगाकर की ओपी की आवश्यकता मैच के लिए इसके अलावा में इस्तेमाल किया जाना चाहिए –

5

xtofl के जवाब पर बिल्डिंग, शीर्ष लेख आप देख रहे हैं <iomanip> है। यह वह जगह है जहां std::hex, std::dec, और std::oct लाइव हैं, जिनमें से सभी धाराओं में निर्देशित किए जा सकते हैं जैसे कि स्ट्रीम के बाद जो कुछ भी भेजा जाता है, उस आधार पर परिवर्तित हो जाता है।

0

मेरा मानना ​​है कि 'स्ट्रिंग' केवल आगे std :: stringstream की घोषणा करता है। तो अगर आप भी शामिल करने की जरूरत:

#include <sstream> 
संबंधित मुद्दे

 संबंधित मुद्दे