前言
c++课学到的,超级实用~支持各种类型的数字与字符串之间的转换,下面以int
和double
类型举例
头文件
1 2
| #include <iostream> #include <sstream>
|
模板函数
数字->字符串
的模板函数:
1 2 3 4 5 6 7
| template <class T> inline string toString(T data) { ostringstream os; os << data; return os.str(); }
|
字符串->数字
的模板函数:
1 2 3 4 5 6 7 8
| template <class T> inline T toNum(const string str) { T data; istringstream is(str); is >> data; return data; }
|
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #include <iostream> #include <sstream>
using namespace std;
template <class T> inline string toString(T data) { ostringstream os; os << data; return os.str(); }
template <class T> inline T toNum(const string str) { T data; istringstream is(str); is >> data; return data; }
int main() { string str, str_; double n; int m; cout << "请输入一个数字:"; cin >> str; cout << "现在是字符串类型的我:" << str << endl;
n = toNum<double>(str); cout << "现在是double类型的我:" << n << endl;
m = toNum<int>(str); cout << "现在是int类型的我:" << m << endl;
str_ = toString(n); cout << "现在又是字符串类型的我:" << str_ << endl; str_ = toString(m); cout << "现在还是字符串类型的我:" << str_ << endl;
return 0; }
|
测试结果