#ifndef EX18_H_INCLUDED
#define EX18_H_INCLUDED
#include <iostream>
#include <string>
#include <sstream>
//模板函数,将字符串转换成其他数据类型
template <class T>T fromString(const std::string& s){
std::istringstream is(s);
T t;
is>>t;
return t;
}
//模板函数,将其他数据类型转换成字符串
template <class T>std::string toString(const T&t){
std::ostringstream s;
s<<t;
return s.str();
}
#endif // EX18_H_INCLUDED
#include "Ex18.h"
#include <iostream>
#include <complex>
using namespace std;
int main()
{
int i=1234;
float j=567.34;
complex<float> c(2.5,4.1);
cout<<"i==\""<<toString(i)<<"\""<<endl; //将数字转换为字符串
cout<<"i==\""<<toString(j)<<"\""<<endl;
cout<<"i==\""<<toString(c)<<"\""<<endl;
i=fromString<int>(string("1234"));
j=fromString<float>(string("567.34"));
c=fromString< complex<float> >(string("(2.5,4.1)"));
cout<<"i==\""<<i<<"\""<<endl; //将字符串转换为数字
cout<<"i==\""<<j<<"\""<<endl;
cout<<"i==\""<<c<<"\""<<endl;
return 0;
}