将数字字符串转换为数字

将数字字符串转换为数字的方法有多种,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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值