4.6.2 万能转换器boost::lexical_cast
来源:互联网 发布:日本奢华温泉知乎 编辑:程序博客网 时间:2024/04/29 16:20
4.6.2 万能转换器boost::lexical_cast
boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:
- string s = "123";
- int a = lexical_cast<int>(s);
这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直接使用boost:: lexical_cast。如果转换发生了意外,lexical_cast会抛出一个bad_lexical_cast异常,因此程序中需要对其进行捕捉。
现在动手
编写如下程序,体验如何使用boost:: lexical_cast完成数值转换。
【程序 4-11】使用boost:: lexical_cast完成对象数值转换
- 01 #include "stdafx.h"
- 02
- 03 #include <iostream>
- 04 #include <boost/lexical_cast.hpp>
- 05
- 06 using namespace std;
- 07 using namespace boost;
- 08
- 09 int main()
- 10 {
- 11 string s = "123";
- 12 int a = lexical_cast<int>(s);
- 13 double b = lexical_cast<double>(s);
- 14
- 15 printf("%d/r/n", a + 1);
- 16 printf("%lf/r/n", b + 1);
- 17
- 18 try
- 19 {
- 20 int c = lexical_cast<int>("wrong number");
- 21 }
- 22 catch(bad_lexical_cast & e)
- 23 {
- 24 printf("%s/r/n", e.what());
- 25 }
- 26
- 27 return 0;28 }
如上程序实现字符串"123"到整数、双精度实数的转换(为了防止程序作弊,我们特意让它将值加1),结果输出如图4-19所示。
(点击查看大图)图4-19 运行结果
光盘导读
该项目对应于光盘中的目录"/ch04/LexicalCastTest"。
===============================
以上摘自《把脉VC++》第4.6.2小节的内容 ,转载请注明出处。
如果你想与我交流,请点击如下链接加我为好友:http://student.csdn.net/invite.php?u=113292&c=8913f87cffe7d533
- 4.6.2 万能转换器boost::lexical_cast
- 万能转换器boost::lexical_cast
- 万能转换器boost::lexical_cast
- 万能转换器boost::lexical_cast
- Boost的万能转换器-->lexical_cast
- c++数据类型万能转换器boost::lexical_cast
- boost::lexical_cast常见用法详解之万能转换
- Boost::lexical_cast
- Boost :Lexical_cast
- boost::lexical_cast
- boost lexical_cast
- boost::lexical_cast
- boost lexical_cast
- boost::lexical_cast
- BOOST-lexical_cast
- boost翻译(1):lexical_cast
- 学习boost之lexical_cast
- boost lexical_cast使用
- 没太注意的几个数学库函数
- 【转】职场讲述:一个误会引发的辞职念头
- 今天学习总结
- 关于重写和重载
- 位运算
- 4.6.2 万能转换器boost::lexical_cast
- c++ I/O
- 写在找工作之前
- 亮剑PHP:我的未来不是梦(9)
- 泛型镲涂 ——默认构造器
- 学生大本营越来越无趣了.
- 在VB.NET的表单中叠代使用控件
- 利用VB.NET Stopwatch对象记录时间
- 在VB.NET中如何确定两个日期之间的天数