C++中的ssstream
本文学习自
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
1 |
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
stringstream类同时可以支持C风格的串流的输入输出操作。
istringstream类是从istream和stringstreambase派生而来,
ostringstream是从ostream和 stringstreambase派生而来,
stringstream则是从iostream类和stringstreambase派生而来。
继承关系如下图
istringstream
1 |
|
上例中,构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象的输入”赋值”操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分解点,利用分界获取的方法我们事实上完成了字符串到整型对象与浮点型对象的拆分转换过程。
ostringstream
ostringstream同样是由一个string对象构造而来,ostringstream类向一个string插入字符。
ostringstream的构造函数原形如下:
ostringstream::ostringstream(string str);
1 |
|
在上例代码中,我们通过put()或者左移操作符可以不断向ostr插入单个字符或者是字符串,通过str()函数返回增长过后的完整字符串数据
但值得注意的一点是,当构造的时候对象内已经存在字符串数据的时候,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长。
stringstream
它是用于C++风格的字符串的输入输出的。 stringstream的构造函数原形如下:
stringstream::stringstream(string str);
1 |
|
stringstream在题目中常常用来做字符串切割
1.
1 | //每次读取一行字符串,一直读到空串为止 |
2.
1 |
|
使用stringstream对象简化类型转换
1.int 到string的转换
1 |
|
2.string到int的转换
1 | string result=”10000”; |
3.连接string和int,使其成为一个整体
1 |
|
4.int 转换为char
1 |
|
5.进行多次转换,必须调用stringstream的成员函数clear()
1 |
|