C++字符串流stringstream的使用(实现各种类型之间的自动转换)

C++中的字符串流对象主要用处在于对多种数据类型的转换,用法如下:

#inlcude<sstream>
using namespace std;

int main( void )
{
 stringstream ss;
 ss<<"carea 89 M 65.3";
 string name;
 int age;
 char sex;
 float weight;
 ss>>name>>age>>sex>>weight;
 cout<<"姓名:"<<name<<endl
  <<"年龄:"<<age<<endl
  <<"性别:"<<sex<<endl
  <<"体重:"<<weight<<endl;
 return 0;
}

C++字符串流stringstream的使用(实现各种类型之间的自动转换)_第1张图片

上面实现了从string类型到int类型、到char类型、到float类型的自动转换。


下面实现的自动转换函数可以替代Boost库中的lexical_cast的功能


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

template<typename targettype,typename sourcetype>
targettype convert(const sourcetype& t)
{
	stringstream ss;
	ss<<t;
	targettype r;
	ss>>r;
	return r;
}


int main(int, char *[])
{
	string a("1234.54747474004444444444444444");
	int b=convert<int,string>(a);
	cout<<b<<endl;
	return 0;
};
C++字符串流stringstream的使用(实现各种类型之间的自动转换)_第2张图片

你可能感兴趣的:(C++,String)