初学c++的小白,记录学习历程,若有错误还请指正。
stringstream为类型转换工具,使用string对象代替其他数据类型。需要注意str("")和clear()的用法。
#include<iostream>
#include<sstream>
using namespace std;
int main(){
stringstream ss;
int inta, intb;
double douc;
bool boold;
ss<<"-23";
ss>>inta;
cout<<"inta is :"<<inta<<endl;
cout<<"ss.str() is :"<<ss.str()<<endl;
ss.clear();
ss<<"456";
ss>>intb;
cout<<"intb is :"<<intb<<endl;
cout<<"ss.str() is :"<<ss.str()<<endl;
ss.clear();ss.str("");
ss<<"3.1415";
ss>>douc;
cout<<"douc is :"<<douc<<endl;
cout<<"ss.str() is :"<<ss.str()<<endl;
//ss.clear();
ss<<true;
ss>>boold;
cout<<"boold is :"<<boold<<endl;
cout<<"ss.str() is :"<<ss.str()<<endl;
return 0;
}
输出结果为:
inta is :-23
ss.str() is :-23
intb is :456
ss.str() is :-23456
douc is :3.1415
ss.str() is :3.1415
boold is :0
ss.str() is :3.1415
使用clear()后:
inta is :-23
ss.str() is :-23
intb is :456
ss.str() is :-23456
douc is :3.1415
ss.str() is :3.1415
boold is :1
ss.str() is :3.14151
对比可知:clear()主要用于不同类型的转换;而str("")用于清空stringstream类中ss的内容。