泛型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; }