zoukankan      html  css  js  c++  java
  • C++ string 与 int 等类型 的相互转换

    看到网上有许多关于这个的实现,而且会涉及到细节的处理。为了以后方便的使用,在此提供可以直接可以使用的函数。

     参考资料:

    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 }

     

  • 相关阅读:
    EasyUI datagrid在insertRow时如果有formatter会出现EasyUI TypeError: rowData.assertEntity is undefined
    序列化与反序列化问题
    序列化和反序列化问题
    Java与.NET的WebServices相互调用
    嫁给程序员吧!!!
    五年之痒
    用户体验5大要素
    敏捷软件开发
    云计算风险识别
    Cute Editor for .NET v6.4
  • 原文地址:https://www.cnblogs.com/shijianming/p/4604124.html
Copyright © 2011-2022 走看看