将数字字符串转换为数字

来源:互联网 发布:天书世界机甲通灵数据 编辑:程序博客网 时间:2024/05/30 22:50

将数字字符串转换为数字的方法有多种,C中有atoi,atof,sscanf函数可用,这些函数的用法可以在msdn里查到,这里就不在多说了,现在说一种通用的转换的方法:

  1. template <typename Type>
  2. bool str2value(const std::string &str, Type &value, std::ios_base &(*fun)(std::ios_base&) = std::oct)
  3. {
  4.  std::istringstream input_istring(str); //把字符串保存入字符流
  5.  return(!(input_istring >> fun >> value).fail());
  6. }

第1个参数为待转换的字符串,第2个参数是转换后的值

第3个参数fun的值可能为std::hex, std::dec, std::oct

 

 

示例:

  1.  std::string strNum = "60.12";
  2.  float fNum = 0.0;
  3.  str2value<float>(strNum,fNum);
  4.  strNum = "FFF";
  5.  int iNum = 0;
  6.  str2value<int>(strNum,iNum,std::hex);
  7.  std::cout << fNum << std::endl;
  8.  std::cout << iNum << std::endl;

输出:

60.12

4095

原创粉丝点击