例如,我有这个从字符串转换为数字的代码:
#include <sstream>
template <typename T>
T string_to_num( const string &Text, T defValue = T() )
{
stringstream ss;
for ( string::const_iterator i=Text.begin(); i!=Text.end(); ++i )
if ( isdigit(*i) || *i=='e' || *i=='-' || *i=='+' || *i=='.' )
ss << *i;
T result;
return ss >> result ? result : defValue;
}
问题是它需要两个参数,第二个参数为它提供了关于我返回什么类型的数字(int 或 float 等)的线索。
如果字符串包含小数点“。”,我该如何做到这一点?它返回十进制数据类型(例如float),否则返回整个数据类型(例如int)?
除非有人有更好的代码,否则他们可以共享来执行此操作..?