C++stingstreamの使用タイプ変換と文字分離(機能はスプリットに似ています)


参考:
http://www.cppblog.com/Sandywin/archive/2007/07/13/27984.html
腫萼萼芰葃芰芫芫芫菶荎荎荎?落33859;芫菗33751;菗33751;33781;33781;菵菵
////////////////////////////////////////
//
//ostringstream, istringstream, stringstream  
//        
//
/////////////////////////////////////////

#include <iostream>
#include <sstream>
using namespace std;


//  ,  stingstream int/float/double      
template<class out_type,class in_value>
out_type convert(const in_value & t)
{
	stringstream stream;
	
	stream<<t;//     
	out_type result;//        
	stream>>result;// result    

	return result;
}

int main(int argc, char* argv[])
{
	//int string
	int temp1_num=100;
	string temp1_str=convert<string>(temp1_num);
	cout<<temp1_str<<endl;

	//string int
	string temp2_str="121";
	int temp2_int=convert<int>(temp2_str);
	cout<<temp2_int<<endl;

	//float(double) string
	float temp3_num=100.32;
	string temp3_str=convert<string>(temp3_num);
	cout<<temp3_str<<endl;

	//string float(double)
	string temp4_str="322.11";
	float temp4_num=convert<float>(temp4_str);
	cout<<temp4_num<<endl;

	//stringstream  split   
	string a, b, c, d;
	string lines="adfa;asdfasd;fasdf;ccc";
	stringstream line(lines);
	getline(line, a, 'f');
	getline(line, b, ';');
	getline(line, c, ';');
	getline(line, d);
	cout<<"a = "<<a<<endl;
	cout<<"b = "<<b<<endl;
	cout<<"c = "<<c<<endl;
	cout<<"d = "<<d<<endl;

	cin.get();
	return 0;
}
C++ stringstream的使用 类型转换以及字符分离(功能类似split)_第1张图片