C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
#include<iostream>
#include <sstream>
using namespace std;
int main()
{ //类型转换
istringstream iss("hello! 2015");//流的输入操作。。将一个string按照不同类型输出
char ch1[20];int a1;
iss>>ch1>>a1;//将字符串"hello! 2015"输入到ch1和a1中,空格会成为字符串参数的内部分界
cout<<ch1<<endl;
cout<<a1<<endl<<endl<<endl;
ostringstream oss("hello! 2015");//流的输出操作。。向一个string插入字符
oss.put('h');oss.put('i');//put(ch):ch自能为字符,如果ch为数字,则自动将该数字视为ASCII骂,然后转换为相应的字符
oss<<100;oss.put(1);oss<<"hi";
//如果构造的时候设置了字符串参数,那么增长操作的时候不会从结尾开始增加,而是修改原有数据,超出的部分增长
string str1 = oss.str();
cout<<str1<<endl<<endl<<endl;
stringstream ss("hello! 2015");//流的输入输出操作。。先输出后输入
ss.put('h');ss.put('i');
ss<<"2015";
string str2 = ss.str();
cout<<str2<<endl;
char ch2[20];int a2;
ss>>ch2>>a2;
cout<<ch2<<endl;
cout<<a2<<endl<<endl<<endl;
}