int main() {
//构造字符串流的时候,空格会成为字符串参数的内部分界,例子中对a,b对象
//的输入"赋值"操作证明了这一点,字符串的空格成为了整型数据与浮点型数据的分界点
//利用分界获取的方法事实上完成了字符串到整型对象与浮点型对象的拆分转换过程
//str()成员函数的使用可以让istringstream对象返回一个string字符串
istringstream istr;
istr.str("1 56.7"); // istringstream istr("1 56.7")
cout << istr.str() << endl;
int a;
float b;
istr >> a;
cout << a << endl;
istr >> b;
cout << b << endl;
//ostringstream同样是由一个string对象构造而来,ostringstream类向一个string插入字符
ostringstream ostr;
//ostr.str("abc"); //如果构造的时候设置了字符串参数,那么增长操作的时候不会从结尾开始增加
//,而是修改原来的数据,超出的部分增长
ostr.put('d');
ostr.put('e');
ostr<<"fg";
string str=ostr.str();
cout << str << endl;
stringstream sstr("ccc");
sstr.put('d');
sstr.put('e');
sstr << "fg";
str = sstr.str();
cout << str << endl;
char ch;
string temp;
sstr >> ch;
cout << ch << endl;
sstr >> temp;
cout << temp << endl;
//stringstream类的对象我们还常用它进行string与各种内置类型数据之间的转换
int a=100;
sstr << a;
sstr >> str;
cout << str << endl;
//string转char[]
sstr.clear(); //如果想通过使用同一stringstream对象实现多种类型的转换,注意在
//每一次转化之后都必须调用clear()成员函数
string name="colinguan";
char cname=[2000];
sstr << name;
sstr >> cname;
return 0;
}