之前介绍过“stdio.h”中sprintf来格式化完成类型转换,可以实现从其它类型转换为字符数组数据。但是这个函数有它本身的限制,不仅是只能其它格式转换为字符数组类型,而且会受限于格式符使用,容易带来意想不到的错误。而本次介绍的“sstream”头文件库可以对类型转换简化很多,并且各种类型之间都可以通过sstream中类实例化对象作为中介来完成相互转换。你可以将其看成是“iostream”中流输入输出功能类似,一个是从终端读出写入,而另一个是从sstream库中类实例化的对象中读出写入。
sstream定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。
主要用来进行数据类型转换,由于使用 string 对象来代替字符数组(sprintf方式),就避免缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。简单说,相比c库的数据类型转换而言,更加安全、自动和直接。
- string 到 int 的转换
string str = "1234";
int n=0;
stringstream ss;
ss << str;
ss >> n; //n等于1234
- clear()
ss.clear();