经常会遇到格式转换的操作,在C++中可以采用stringstream来进行转换,这种操作还是比较方便的直观的,记录一点使用心得,
1、支持int、char* < --- >string、bool -- > int之间的格式转换;
2、使用stringstream来做转换时,最好使用完,进行ss.clear()操作;
推荐阅读这个链接http://www.cppblog.com/yuqilin1228/archive/2010/03/26/110620.html
使用的一个例子
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <algorithm>
#include <numeric>
using namespace std;
int main()
{
vector<int> v;
string tmp;
while(getline(cin,tmp))
{
//int itmp = atoi(tmp.c_str());
int itmp;
stringstream ss;
ss << tmp;
ss >> itmp;
ss.clear();
/*
if(!ss.good())
{
cerr << "bad convert\n";
break;
}
*/
v.push_back(itmp);
cin.sync();
}
sort(v.begin(),v.end());
/*
vector<int>::iterator it = v.begin();
for(;it != v.end();it++)
{
cout << *it << endl;
}
*/
copy(v.begin(),v.end(),ostream_iterator<int>(cout,"\n"));
//cout << "Hello world!" << endl;
return 0;
}