用标准用标准c++实现实现string与各种类型之间的转换与各种类型之间的转换
要实现这个目标,非stringstream类莫属。
这个类在头文件中定义, < sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输
入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。
简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。
示例1示范怎样使用一个stringstream对象进行从 string到int类型的转换 注意,使用string对象来代替字符数组。这样可以避免
缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的格式化符也没有危险。
示例示例1::
代码如下:
std::stringstream stream;
string result=”10000″;
int n = 0;
stream << result; stream >> n;//n等于10000
int到string类型的转换
代码如下:
string result;
int n = 12345;
stream << n;
result =stream.str();// result等于”12345″
重复利用stringstream对象 如果你打算在多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法,在
多次转换中重复使用同一个 stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率。stringstream对象的
构造和析构函数通常是非常耗费CPU 时间的。经试验,单单使用clear()并不能清除stringstream对象的内容,仅仅是了该对象
的状态,要重复使用同一个 stringstream对象,需要使用str()重新初始化该对象。
示例示例2::
代码如下:
std::stringstream strsql;
for (int i= 1; i < 10; ++i)
{