码迷,mamicode.com
首页 > 其他好文 > 详细

boost::lexical_cast

时间:2014-05-10 01:25:37      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

bubuko.com,布布扣
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所示。
bubuko.com,布布扣
bubuko.com,布布扣

有了这个还用个毛atoi,itoa。

还有一种方法有std::stringstream也行,用流进行转换。

boost::lexical_cast,布布扣,bubuko.com

boost::lexical_cast

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/zzyoucan/p/3708213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!