在进行编码时经常需要将整型数转化为string, 或者string转成整型数,或者char[]转化为整数。 boost的lexical_cast基本上提供了我们需要的所有常用的转化功能。相比一般的转换,其优点在于 可在任意可输出到stringstream的类型和任意可从stringstream输入的类型间转换。

一个开胃的例子:string to int,  int i = boost::lexical_cast<int>("123");

More general 用法:

template<typename Target, typename Source> 定义Target 和 Source,两种类型

Target t;Source source; //定义对象,source应该有初始值 
把Source类型转成Target, 只需要简单的这样写:

Target t = boost::lexical_cast<Target>(source); //转换不成功的时候,lexical_cast会抛出一个bad_lexical_cast的异常,严谨的用法应该是 如一下例子:

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

template <typename T> std::string to_string(const T& arg) {
  try {
    return boost::lexical_cast<std::string>(arg);
  }
  catch(boost::bad_lexical_cast& e) {
    return " ";
  }
}

int main() {
  std::string s=to_string(412);
  s=to_string(2.357);
}

参考: http://www.ok2002.com/document/c-and-plus/c-plus-plus-boost-standard/0321133544/ch02lev1sec5.html

Boost 之 lexical_cast相关推荐

  1. boost之lexical_cast

    第一次翻译,虽然是个很简单的函数介绍... 文件boost/lexical_cast.hpp中定义了此函数: [cpp] view plaincopy namespace boost { class  ...

  2. boost:lexical_cast

    概述 顾名思义,lexical_cast库进行"字面值"的转换,类似C中的atoi()函数,可以进行字符串与整数/浮点数之间的字面转换 标准C和c++库提供了许多用于执行此类转换的 ...

  3. boost::convert模块实现lexical_cast的测试程序

    boost::convert模块实现lexical_cast的测试程序 实现功能 C++实现代码 实现功能 boost::convert模块实现lexical_cast的测试程序 C++实现代码 #i ...

  4. C++ boost::lexical_cast

    1. lexical_cast是boost中的一个库, 主要用于数值与字符串的相互转换.boost 的 lexical_cast 能把字符串转成各种 c++ 内置类型,需要包含头文件: #includ ...

  5. boost::convert模块实现算法的测试程序

    boost::convert模块实现算法的测试程序 实现功能 C++实现代码 实现功能 boost::convert模块实现算法的测试程序 C++实现代码 #include <boost/con ...

  6. 写一个Windows上的守护进程(4)日志其余

    写一个Windows上的守护进程(4)日志其余 这次把和日志相关的其他东西一并说了. 一.vaformat C++日志接口通常有两种形式:流输入形式,printf形式. 我采用printf形式,因为流 ...

  7. boost::lexical_cast用法的测试程序

    boost::lexical_cast用法的测试程序 实现功能 C++实现代码 实现功能 boost::lexical_cast用法的测试程序 C++实现代码 #include <boost/m ...

  8. boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double

    boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double 实现功能 C++实现代码 实现功能 boost: ...

  9. boost::lexical_cast模块测试 Source 是否不可复制

    boost::lexical_cast模块测试 Source 是否不可复制 实现功能 C++实现代码 实现功能 boost::lexical_cast模块测试 Source 是否不可复制 C++实现代 ...

  10. boost::lexical_cast

    编译有boost库即可 不需要加特殊编译命令 #include <iostream> #include <boost/lexical_cast.hpp> #include &l ...

最新文章

  1. Crystal Reports 财务日记帐凭证套打设计
  2. 概述VB.NET正则表达式简化程序代码
  3. 从数学优化到视觉设计
  4. Mr.J--Java基础问题30问
  5. 学校计算机教室局域网的建立,校园局域网组建及配置.pdf
  6. 下行物理信道rs_这些CH结尾的LTE物理信道傻傻分不清楚?快来看这篇文章!
  7. 重置Mysql自增列的开始序号
  8. python小程序设计4s店_python自写的车牌识别小程序,完全自主实现。图片处理
  9. Java中的对象都是在堆上分配的吗?
  10. [struts2学习笔记] 第五节 编写struts2的action代码
  11. 树莓派基于motion的usb摄像头监控
  12. 网络计算机是第几代,操作系统 是在计算机发展的第几代出现的?
  13. 支付宝统一收单接口实现支付宝支付
  14. h5 android上传本地视频文件,关于webview适配H5上传照片或者视频文件的方法
  15. Visual Studio 2015官方汇总包括下载和视频
  16. wordpress cookies 遇到预料外错误 阿里云虚拟机
  17. streamx平台部署
  18. CF B. Sonya and Exhibition
  19. linux sh文件格式,SH文件扩展名 - 什么是.sh以及如何打开? - ReviverSoft
  20. ASP.NET MVC 远程请求图片 转化成BASE64然后通过HTTP输出流显示

热门文章

  1. Exception in thread “main“ org.apache.spark.sql.catalyst.parser.ParseException: extraneous input ‘$
  2. Android 检索相册视频文件
  3. 《第四部分-练习题:微信朋友圈、支付宝支付功能测试点》
  4. qnx slm7.1(程序员开发手册-翻译)
  5. Myeclipes 10 cracker.jar破解文件指定路径错误
  6. 骁龙435/MSM8940处理器详细规格(补充说明)
  7. 红蜻蜓抓图软件测试简历,红蜻蜓抓图精灵
  8. 几款软件界面模型设计工具
  9. 电脑开机内存占用过高处理
  10. 嘉兴学院计算机研究生导师,延安大学—嘉兴学院联合培养硕士研究生导师见面会召开...