আমি কিভাবে থেকে রূপান্তর করবেন std::stringstreamকরতে std::stringC ++?
স্ট্রিং স্ট্রিমে কি আমাকে কোনও পদ্ধতি কল করার দরকার আছে?
আমি কিভাবে থেকে রূপান্তর করবেন std::stringstreamকরতে std::stringC ++?
স্ট্রিং স্ট্রিমে কি আমাকে কোনও পদ্ধতি কল করার দরকার আছে?
উত্তর:
yourStringStream.str()
.Str () - পদ্ধতিটি ব্যবহার করুন :
অন্তর্নিহিত স্ট্রিং অবজেক্টের সামগ্রীগুলি পরিচালনা করে।
1) কল করে যেমন অন্তর্নিহিত স্ট্রিংয়ের একটি অনুলিপি ফেরত দেয়
rdbuf()->str()।2) অন্তর্নিহিত স্ট্রিংয়ের সামগ্রীগুলি প্রতিস্থাপন করে যেন কল করে
rdbuf()->str(new_str)...মন্তব্য
The copy of the underlying string returned by str is a temporary object that will be destructed at the end of the expression, so directly calling
c_str()on the result ofstr()(for example inauto *ptr = out.str().c_str();) results in a dangling pointer...
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একটি সংখ্যার মান হওয়া প্রয়োজন।