boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:
  1. string s = "123";
  2. int a = lexical_cast<int>(s);
这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接使用boost:: lexical_cast。如果转换发生了意外,lexical_cast会抛出一个bad_lexical_cast异常,因此程序中需要对其进行捕捉。

现在动手

编写如下程序,体验如何使用boost:: lexical_cast完成数值转换。
【程序 4-11】使用boost:: lexical_cast完成对象数值转换
  1. 01  #include "stdafx.h"
  2. 02
  3. 03  #include <iostream>
  4. 04  #include <boost/lexical_cast.hpp>
  5. 05
  6. 06  using namespace std;
  7. 07  using namespace boost;
  8. 08
  9. 09  int main()
  10. 10  {
  11. 11      string s = "123";
  12. 12      int a = lexical_cast<int>(s);
  13. 13      double b = lexical_cast<double>(s);
  14. 14
  15. 15      printf("%d\r\n", a + 1);
  16. 16      printf("%lf\r\n", b + 1);
  17. 17
  18. 18      try
  19. 19      {
  20. 20          int c = lexical_cast<int>("wrong number");
  21. 21      }
  22. 22      catch(bad_lexical_cast & e)
  23. 23      {
  24. 24          printf("%s\r\n", e.what());
  25. 25      }
  26. 26
  27. 27      return 0;28 }
如上程序实现字符串"123"到整数、双精度实数的转换(为了防止程序作弊,我们特意让它将值加1),结果输出如图4-19所示。
 
(点击查看大图)图4-19  运行结果
光盘导读
该项目对应于光盘中的目录"\ch04\LexicalCastTest"。
===============================
以上摘自《把脉VC++》第4.6.2小节的内容 ,转载请注明出处。

转载于:https://blog.51cto.com/bluejoe/193411

万能转换器boost::lexical_cast相关推荐

  1. 4.6.2 万能转换器boost::lexical_cast

    4.6.2 万能转换器boost::lexical_cast 4.6.2 万能转换器boost::lexical_cast - 51CTO.COM 4.6.2 万能转换器boost::lexical_ ...

  2. Boost的万能转换器--lexical_cast

    boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下: string s = &q ...

  3. 升压转换器 (Boost)

    升压转换器 (Boost) 需要将输入电压转换为较高的输出电压时,升压转换器 (Boost)是唯一的选择. 升压转换器透过内部 MOSFET 对电压充电来达成升压输出的目的,而当 MOSFET 关闭时 ...

  4. boost::lexical_cast用法的测试程序

    boost::lexical_cast用法的测试程序 实现功能 C++实现代码 实现功能 boost::lexical_cast用法的测试程序 C++实现代码 #include <boost/m ...

  5. boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double

    boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double 实现功能 C++实现代码 实现功能 boost: ...

  6. boost::lexical_cast模块测试 Source 是否不可复制

    boost::lexical_cast模块测试 Source 是否不可复制 实现功能 C++实现代码 实现功能 boost::lexical_cast模块测试 Source 是否不可复制 C++实现代 ...

  7. boost::lexical_cast

    编译有boost库即可 不需要加特殊编译命令 #include <iostream> #include <boost/lexical_cast.hpp> #include &l ...

  8. PDF万能转换器绿色下载

    由于PDF格式在编辑和摘取资料方面有着严重的局限性,于是寻求快速并且高效.高质量的专业版PDF转换器成为了广大办公室文员的福音,迅捷PDF万能转换器绿色版正是这样一款堪称完美的PDF转换软件,能够满足 ...

  9. Total Audio Converter(万能转换器)

    Total Audio Converter(万能转换器) 1.Total Audio Converter(万能转换器)   下载地址:https://total-audio-converter.en. ...

最新文章

  1. 我先了解一下博客园创建随笔/文章/日记的过程与三者的区别(隐私等级,是否审核等)...
  2. 用Kubernetes部署超级账本Fabric的区块链即服务(1)
  3. android最恶心的是什么?
  4. 【笔记】JAVA中的泛型和反射
  5. python中可变参数怎么传递的呢_在python中,你可以在命名参数后传递可变参数吗?...
  6. 在windows xp下编译出ffmpeg.exe
  7. 再谈strncpy函数--值得一看的好文章
  8. ubuntu 16.04下git的安装与使用
  9. 爆料称三星Galaxy S22 Ultra或更名:融合Note系列实锤
  10. 文件服务器复杂权限,运用技巧:如何提高文件服务器权限?
  11. nginx 根据目录指定root_CentOS(7.6)基本操作与Nginx配置
  12. 美科学家研发能从干燥的沙漠空气中造水的新设备
  13. 高等数学(第七版)同济大学 习题8-1 个人解答
  14. 所有B2B从业者都会遇到的9个问题(詹仕波)
  15. 微信小程序中使用自定义图标(阿里icon)的方法
  16. snownlp对天猫商品评论数据进行情感分析(附源码)
  17. layui中去掉表格的hover变色
  18. 一套开源三维管线管理系统
  19. 超宽屏幕比例_选择合适的21:9超宽带鱼屏屏幕(普通屏幕也可)
  20. python总结与习题(一)

热门文章

  1. 管理口SSH服务存在拒绝服务漏洞(CVE-2016-6515)
  2. 系统 应用 数据缺一不可 云优化三步走
  3. SCOM2012功能测试(25)—发布报表和收藏报表
  4. C语言学习之 数组,指针,字符串. (一)
  5. win下常用快捷鍵及其作用
  6. (转)JavaScript导出Word后对Word分页的处理
  7. vector向量容器元素排序与查找
  8. 洛谷P5108 仰望半月的夜空(后缀数组)
  9. STM32开发笔记之——CMSIS DAP
  10. NOIP2018 DAY1T1 铺设道路(水题)