मैं कैसे से परिवर्तित करना std::stringstreamकरने के लिए std::stringC ++?
क्या मुझे स्ट्रिंग स्ट्रीम पर एक विधि को कॉल करने की आवश्यकता है?
मैं कैसे से परिवर्तित करना std::stringstreamकरने के लिए std::stringC ++?
क्या मुझे स्ट्रिंग स्ट्रीम पर एक विधि को कॉल करने की आवश्यकता है?
जवाबों:
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::ostringstreamstd::wostringstreamNumericValue
मेमोरी से, आप मूल्य बाहर निकालने के stringstream::str()लिए कॉल std::stringकरते हैं।