万能转换器boost::lexical_cast

本文介绍如何使用boost::lexical_cast库函数来进行不同数值类型间的转换,并提供了具体的代码示例,展示了从字符串到整型及浮点型的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


  1. strings="123";
  2. inta=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. 06usingnamespacestd;
  7. 07usingnamespaceboost;
  8. 08
  9. 09intmain()
  10. 10{
  11. 11strings="123";
  12. 12inta=lexical_cast<int>(s);
  13. 13doubleb=lexical_cast<double>(s);
  14. 14
  15. 15printf("%d\r\n",a+1);
  16. 16printf("%lf\r\n",b+1);
  17. 17
  18. 18try
  19. 19{
  20. 20intc=lexical_cast<int>("wrongnumber");
  21. 21}
  22. 22catch(bad_lexical_cast&e)
  23. 23{
  24. 24printf("%s\r\n",e.what());
  25. 25}
  26. 26
  27. 27return0;28}

如上程序实现字符串"123"到整数、双精度实数的转换(为了防止程序,我们特意让它将值加1),结果输出如图4-19所示。

(点击查看大图)图4-19 运行结果

光盘导读

该项目对应于光盘中的目录"\ch04\LexicalCastTest"。

===============================

以上摘自《把脉VC++》第4.6.2小节的内容,转载请注明出处。

如果你想与我交流,请点击如下链接加我为好友:http://student.youkuaiyun.com/invite.php?u=113292&c=8913f87cffe7d533

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值