मैं कैसे से परिवर्तित करना std::stringstream
करने के लिए std::string
C ++?
क्या मुझे स्ट्रिंग स्ट्रीम पर एक विधि को कॉल करने की आवश्यकता है?
मैं कैसे से परिवर्तित करना std::stringstream
करने के लिए std::string
C ++?
क्या मुझे स्ट्रिंग स्ट्रीम पर एक विधि को कॉल करने की आवश्यकता है?
जवाबों:
yourStringStream.str()
.Str () - विधि का प्रयोग करें :
अंतर्निहित स्ट्रिंग ऑब्जेक्ट की सामग्री का प्रबंधन करता है।
1) अंतर्निहित स्ट्रिंग की एक प्रति लौटाता है जैसे कि कॉल करके
rdbuf()->str()
।2) अंतर्निहित स्ट्रिंग की सामग्री को प्रतिस्थापित करता है जैसे कि कॉल करके
rdbuf()->str(new_str)
...टिप्पणियाँ
स्ट्रिंग द्वारा लौटाए गए अंतर्निहित स्ट्रिंग की प्रतिलिपि एक अस्थायी वस्तु है, जिसे अभिव्यक्ति के अंत में नष्ट कर दिया जाएगा, इसलिए सीधे (उदाहरण के लिए ) के परिणाम
c_str()
पर कॉल करना एक लटकने वाले सूचक में परिणाम ...str()
auto *ptr = out.str().c_str();
std::stringstream::str()
वह विधि है जिसकी आप तलाश कर रहे हैं।
के साथ std::stringstream
:
template <class T>
std::string YourClass::NumericToString(const T & NumericValue)
{
std::stringstream ss;
ss << NumericValue;
return ss.str();
}
std::stringstream
एक अधिक सामान्य उपकरण है। आप std::ostringstream
इस विशिष्ट नौकरी के लिए अधिक विशिष्ट वर्ग का उपयोग कर सकते हैं ।
template <class T>
std::string YourClass::NumericToString(const T & NumericValue)
{
std::ostringstream oss;
oss << NumericValue;
return oss.str();
}
यदि आप std::wstring
तार के साथ काम कर रहे हैं, तो आपको पसंद करना चाहिए std::wstringstream
या std::wostringstream
इसके बजाय।
template <class T>
std::wstring YourClass::NumericToString(const T & NumericValue)
{
std::wostringstream woss;
woss << NumericValue;
return woss.str();
}
यदि आप चाहते हैं कि आपके स्ट्रिंग का चरित्र प्रकार रन-टाइम चयन योग्य हो, तो आपको इसे एक टेम्प्लेट चर भी बनाना चाहिए।
template <class CharType, class NumType>
std::basic_string<CharType> YourClass::NumericToString(const NumType & NumericValue)
{
std::basic_ostringstream<CharType> oss;
oss << NumericValue;
return oss.str();
}
उपरोक्त सभी विधियों के लिए, आपको निम्नलिखित दो हेडर फ़ाइलों को शामिल करना होगा।
#include <string>
#include <sstream>
ध्यान दें, NumericValue
ऊपर दिए गए उदाहरणों में तर्क को क्रमशः और उदाहरणों के साथ std::string
या के रूप में std::wstring
उपयोग किया जा सकता है। संख्यात्मक मान होना आवश्यक नहीं है ।std::ostringstream
std::wostringstream
NumericValue
मेमोरी से, आप मूल्य बाहर निकालने के stringstream::str()
लिए कॉल std::string
करते हैं।