- #include <iostream>
- #include <string>
- #include <sstream>
- #include <complex>
-
- using namespace std;
-
- template<typename T>
- T fromString(const string &s)
- {
- istringstream is(s);
- T t;
- is >> t;
-
- return t;
- }
-
- template<typename T>
- string toString(const T &t)
- {
- ostringstream s;
- s << t;
-
- return s.str();
- }
-
- int main(int argc, char *argv[])
- {
- int i = 12345;
- cout << "i == \"" << toString(i) << "\"" << endl;
- float x = 567.89;
- cout << "x == \"" << toString(x) << "\"" << endl;
- complex<float> c(1.0, 2.0);
- cout << "c == \"" << toString(c) << "\"" << endl << endl;
-
- i = fromString<int>(string("1234"));
- cout << "i == " << i << endl;
-
- x = fromString<float>(string("567.89"));
- cout << "x == " << x << endl;
-
- c = fromString< complex<float> >(string("(1.0, 2.0)"));
- cout << "c == " << c << endl;
-
- return 0;
- }
運行結果為:
i == "12345"
x == "567.89"
c == "(1,2)"
i == 1234
x == 567.89
c == (1,2)