C++ 简单的字符串转换


  1. #include <iostream>   
  2. #include <string>   
  3. #include <sstream>   
  4. #include <complex>   
  5.   
  6. using namespace std;  
  7.   
  8. template<typename T>  
  9. T fromString(const string &s)  
  10. {  
  11.     istringstream is(s);  
  12.     T t;  
  13.     is >> t;  
  14.   
  15.     return t;  
  16. }  
  17.   
  18. template<typename T>  
  19. string toString(const T &t)  
  20. {  
  21.     ostringstream s;  
  22.     s << t;  
  23.   
  24.     return s.str();  
  25. }  
  26.   
  27. int main(int argc, char *argv[])  
  28. {  
  29.     int i = 12345;  
  30.     cout << "i == \"" << toString(i) << "\"" << endl;  
  31.     float x = 567.89;  
  32.     cout << "x == \"" << toString(x) << "\"" << endl;  
  33.     complex<float> c(1.0, 2.0);  
  34.     cout << "c == \"" << toString(c) << "\"" << endl << endl;  
  35.   
  36.     i = fromString<int>(string("1234"));  
  37.     cout << "i == " << i << endl;  
  38.   
  39.     x = fromString<float>(string("567.89"));  
  40.     cout << "x == " << x << endl;  
  41.   
  42.     c = fromString< complex<float> >(string("(1.0, 2.0)"));  
  43.     cout << "c == " << c << endl;  
  44.   
  45.     return 0;  
  46. }  

运行结果为:

i == "12345"
x == "567.89"
c == "(1,2)"


i == 1234
x == 567.89
c == (1,2)

相关内容