对于C++的各种相互转换,很多人很是头疼,包括我也是。
下面提供一个非常好的转换方法,如下:
在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)
#include <sstream>
#include <string>
std::string text = "152";
int number;
std::stringstream ss;
ss << text;//可以是其他数据类型
ss >> number; //string -> int
if (! ss.good())
{
//错误发生
}
ss << number;// int->string
string str = ss.str();
if (! ss.good())
{
//错误发生
}
注意:
重复利用stringstream对象
如果你打算在多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法;
在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象的构造和析构函数通常是非常耗费CPU时间的。