#include <sstream>头文件中主要包含了stringstream,可以用来进行数据格式转换。
std::stringstream ss;
1.注意每当调用一次<<和>>后,stringstream都会设置oef标志位,oef标志位会导致后面读写操作全部失效。
多次转换需要清除oef标志位 ss.clear(),
或者清空缓存ss.str("");
2.重置数据类容
std::string test_str = "test_string";
ss.str(test_str);//注意返回值为void,清空缓存,最好不要放任何内容,并且把转换标志位移动到流的开始位置
ss.str();//注意返回值为string
3.转化成std::string
ss.str();
4.输入各种类型的数据
ss << 123;
ss << "asdf";
ss << true;
ss << 2.34;
5.输出成为各种类型的数据
int a;
ss >> a;
double b;
ss >> b;
bool c;
ss >> c;
string str = ss.str();
6.以空格作为流的分隔符
#include <string> // std::string
#include <iostream> // std::cout
#include <sstream> // std::stringstream, std::stringbuf
using namespace std;
int main()
{
int a;
stringstream ss;
ss << "1 2 3 4 5 6";
while( ss >> a){
cout<<ss.str()<<" "<<a<<endl;
}
return 0;
}