看到网上有许多关于这个的实现,而且会涉及到细节的处理。为了以后方便的使用,在此提供可以直接可以使用的函数。
参考资料:
1:讲解C++ stringstream(细节):http://blog.csdn.net/leonardwang/article/details/4881122
2:C++模板(很详细,有例子):http://www.cnblogs.com/gaojun/archive/2010/09/10/1823354.html
1 #include <iostream>
2 #include <sstream>
3 using namespace std;
4 // http://www.cnblogs.com/waitingandhoping/p/4604124.html
5 /*
6
7 由于stringstream构造、解析函数很耗时,所以尽量只创建一个。
8 stream.clear(); // 只是重置了stringstream的状态标志,并没有清空数据
9 stream.str(""); // 清空数据
10
11 */
12
13 // 其他类型 -> string
14 template <class Type>
15 void TypeTostring(Type TypeTmp, string& strTmp) {
16 stringstream stream;
17 stream << TypeTmp;
18 stream >> strTmp;
19 stream.clear();
20 stream.str("");
21 }
22
23 // string -> 为其他类型
24 template <class Type>
25 void stringToType(string strTmp, Type& TypeTmp) {
26 stringstream stream;
27 stream << strTmp;
28 stream >> TypeTmp;
29 stream.clear();
30 stream.str("");
31 }
32
33 int main() { // 测试
34
35 string strTmp;
36 int intTmp;
37 __int64 int64Tmp;
38 double dbeTmp;
39
40 while (true) {
41 cout << "----- int to string -----" << endl;
42 cin >> intTmp;
43 TypeTostring(intTmp, strTmp);
44 cout << strTmp << endl;
45 cout << "----- string to int -----" << endl;
46 cin >> strTmp;
47 stringToType(strTmp, intTmp);
48 cout << intTmp << endl;
49
50
51 cout << "----- double to string -----" << endl;
52 cin >> dbeTmp;
53 TypeTostring(dbeTmp, strTmp);
54 cout << strTmp << endl;
55 cout << "----- string to double -----" << endl;
56 cin >> strTmp;
57 stringToType(strTmp, dbeTmp);
58 cout << dbeTmp << endl;
59
60
61 cout << "----- int64 to string -----" << endl;
62 cin >> int64Tmp;
63 TypeTostring(int64Tmp, strTmp);
64 cout << strTmp << endl;
65 cout << "----- string to int64 -----" << endl;
66 cin >> strTmp;
67 stringToType(strTmp, int64Tmp);
68 cout << int64Tmp << endl;
69 cout << "--------------------------end-------------------------" << endl;
70 }
71 return 0;
72 }
原文链接: https://www.cnblogs.com/shijianming/p/4604124.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/218241
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!