泛型stringToNumber

C++中将string类型转换为double的方法:
#include <iostream>
#include <sstream> //使用stringstream需要引入这个头文件
using namespace std;

//模板函数:将string类型变量转换为常用的数值类型(此方法具有普遍适用性)
template <class Type>
Type stringToNum(const string& str)
{
istringstream iss(str);
Type num;
iss >> num;
return num;
}

int main(int argc, char* argv[])
{
string str("00801");
cout << stringToNum<int>(str) << endl;

system("pause");
return 0;
}

template<class Type>
string NumToString(const Type& num)
{
    stringstream iss;
    iss << num;
    string str;
    iss >> str;
    return str;
}
template<class Type>
string NumListToString(Type* Coord, int nCount, string splt = ",")
{
    string strList;
    for (int i = 0; i < nCount; i++)
    {
        string str = NumToString<Type>(Coord[i]);
        if (i < nCount - 1)
            strList = strList + str + splt;
        else
            strList = strList + str;
    }
//    strList = strList.substr(0, strList.length()-1);
    return strList;
}
int main()
{
    double a[100] = { 0 };
    for (int i = 0; i < 100; i++)
    {
        a[i] = i*0.1;
    }
    cout << NumListToString<double>(a, 100,"#") << endl;
    getchar();
    return 0;
}

 

posted @ 2023-02-08 14:51  leochan007  阅读(45)  评论(0编辑  收藏  举报