如何将string转换为C ++中的string?
如何从C ++中将std::stringstream转换为std::stringstream ?
我是否需要在stringstream上调用方法?
yourStringStream.str()
使用.str() – 方法 :
pipe理底层string对象的内容。
1)像调用
rdbuf()->str()一样返回底层string的副本。2)像调用
rdbuf()->str(new_str)一样replace底层string的内容…笔记
str返回的底层string的副本是一个临时对象,将在expression式的末尾被析构,所以直接对
str()的结果调用c_str()str()(例如在auto *ptr = out.str().c_str();)导致一个悬挂指针…
从内存中调用stringstream :: str()来获取std :: string值。
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::wstringtypes的string,则必须使用std::wstringstream或std::wostringstream 。
template <class T> std::wstring YourClass::NumericToString(const T & NumericValue) { std::wostringstream woss; woss << NumericValue; return woss.str(); }
如果你希望你的string的字符types可以在运行时select,你也应该使它成为一个模板variables。
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没有必要是一个数字值。
我想补充一点,在调用.str()方法之前,必须用'\ 0'终止strstream缓冲区。 否则,在转储string时会出现错误的字符。