boost::lexical_cast常见用法详解之万能转换

提示:

  • 虽然在c中可是使用类似于atoi之类的函数对字符串转换成整型,但是我们在这儿还是推荐使用这个函数
  • 如果转换发生了错误,lexical_cast会抛出一个bad_lexical_cast异常,因此程序中需要对其进行捕捉。

下面是程序示例:

#include <iostream>
#include <boost/lexical_cast.hpp>  

using namespace std;
using namespace boost;  

int main()
{
    string s = "123";
    int a = lexical_cast<int>(s);
    double b = lexical_cast<double>(s);  

    printf("%d/r/n", a + 1);
    printf("%lf/r/n", b + 1);  

    try
    {
	//为了防止转化错误使用一个错误的例子
        int c = lexical_cast<int>("wrong_number");
    }
    catch(bad_lexical_cast & e)
    {
        printf("%s/r/n", e.what());
    }
    return 0;
}
时间: 2024-10-15 16:46:09

boost::lexical_cast常见用法详解之万能转换的相关文章

boost的posix_time用法详解01

// boost_time.cpp : 定义控制台应用程序的入口点. //made by davidsu33 //2014-5-11 //the usage of posix_time #include "stdafx.h" #include <boost/date_time/posix_time/posix_time.hpp> #include <iostream> #include <cassert> using namespace std; #

VC++中MessageBox的常见用法详解

消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合.         1.MessageBox("这是一个最简单的消息框!");         2.MessageBox("这是一个有标题的消息框!","这是标题");         3.MessageBox("这是一个确定 取消的消息框!","这是标题", MB_OKCANCEL );         4.Messa

const和typedef的常见用法详解

一.说说const 一般而言,const主要是用来防止定义的对象再次被修改,定义对象变量时要初始化变量. 常见用法如下: 1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val = 10; //Val = 20; //错误,不可被修改 2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传递参数给一个函数,在这个函数里这个参数的值若被修改, 则函数外部传进来的变量的值也发生改变,若想保护传进来的变量不被修改,可以使用const保护 void  fun1(con

[js高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)

关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下promise的常见用法. 为什么会有promise,他的作用是什么? promise主要是为了解决js中多个异步回调难以维护和控制的问题. 什么是promise? 从图中,我们可以看出,Promise是一个函数,这个函数上有在项目中常用的静态方法:all, race, reject,resolve等,原

多线程的常见用法详解 --转载

1.多线程:使用多个处理句柄同时对多个任务进行控制处理的一种技术.据博主的理解,多线程就是该应用的主线程任命其他多个线程去协助它完成需要的功能,并且主线程和协助线程是完全独立进行的.不知道这样说好不好理解,后面慢慢在使用中会有更加详细的讲解. 2.多线程的使用: (1)最简单.最原始的使用方法:Thread oGetArgThread = new Thread(new ThreadStart(() =>{});这种用法应该大多数人都使用过,参数为一个ThreadStart类型的委托.将Threa

C#基础系列——多线程的常见用法详解

前言:前面几节分别介绍了下C#基础技术中的反射.特性.泛型.序列化.扩展方法.Linq to Xml等,这篇跟着来介绍下C#的另一基础技术的使用.最近项目有点紧张,所以准备也不是特别充分.此篇就主要从博主使用过的几种多线程的用法从应用层面大概介绍下.文中观点都是博主个人的理解,如果有不对的地方望大家指正~~ 1.多线程:使用多个处理句柄同时对多个任务进行控制处理的一种技术.据博主的理解,多线程就是该应用的主线程任命其他多个线程去协助它完成需要的功能,并且主线程和协助线程是完全独立进行的.不知道这

多线程的常见用法详解

前言:此篇就主要从博主使用过的几种多线程的用法从应用层面大概介绍下.文中观点都是博主个人的理解,如果有不对的地方望大家指正~~ 1.多线程:使用多个处理句柄同时对多个任务进行控制处理的一种技术.据博主的理解,多线程就是该应用的主线程任命其他多个线程去协助它完成需要的功能,并且主线程和协助线程是完全独立进行的.不知道这样说好不好理解,后面慢慢在使用中会有更加详细的讲解. 2.多线程的使用: (1)最简单.最原始的使用方法:Thread oGetArgThread = new Thread(new

boost::filesystem常用用法详解

提示: filesystem库提供了两个头文件,一个是<boost/filesystem.hpp>,这个头文件包含主要的库内容.它提供了对文件系统的重要操作.同时它定义了一个类path,正如大家所想的,这个是一个可移植的路径表示方法,它是filesystem库的基础. 一个是<boost/filesystem/fstream.hpp>,是对std::fstream的一个补充,使用可以使用类boost::path作为参数,从而使得filesystem库与标准库的关系更亲密. 由于文件

LVM2常见用法详解

1.简介 LVM(Logical Volume Manager)是逻辑卷管理的意思,是linux环境下对磁盘分区进行管理的一种机制,lvm是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. 2.特点 可以对磁盘进行动态管理,动态增加或较少逻辑卷大小,而不会丢失现有的数据. 3.基本的逻辑管理概念 PV(physical volume)- 物理卷 通常是一个分区,也可以是整个物理硬盘,也可以是raid设备. VG(volume group)- 卷组 多个物理卷的集合,创建在物理卷之上