zoukankan      html  css  js  c++  java
  • 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所示。

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

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

  • 相关阅读:
    数据库中总结2
    PyMySQL的基本使用
    数据库总结
    并发编程之多线程
    并发编程之多进程知识
    并发编程之多进程
    操作系统基础知识
    模块二总结
    Python函数进阶
    文件操作
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/3708213.html
Copyright © 2011-2022 走看看