Boost 之 lexical_cast
在进行编码时经常需要将整型数转化为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相关推荐
- boost之lexical_cast
第一次翻译,虽然是个很简单的函数介绍... 文件boost/lexical_cast.hpp中定义了此函数: [cpp] view plaincopy namespace boost { class ...
- boost:lexical_cast
概述 顾名思义,lexical_cast库进行"字面值"的转换,类似C中的atoi()函数,可以进行字符串与整数/浮点数之间的字面转换 标准C和c++库提供了许多用于执行此类转换的 ...
- boost::convert模块实现lexical_cast的测试程序
boost::convert模块实现lexical_cast的测试程序 实现功能 C++实现代码 实现功能 boost::convert模块实现lexical_cast的测试程序 C++实现代码 #i ...
- C++ boost::lexical_cast
1. lexical_cast是boost中的一个库, 主要用于数值与字符串的相互转换.boost 的 lexical_cast 能把字符串转成各种 c++ 内置类型,需要包含头文件: #includ ...
- boost::convert模块实现算法的测试程序
boost::convert模块实现算法的测试程序 实现功能 C++实现代码 实现功能 boost::convert模块实现算法的测试程序 C++实现代码 #include <boost/con ...
- 写一个Windows上的守护进程(4)日志其余
写一个Windows上的守护进程(4)日志其余 这次把和日志相关的其他东西一并说了. 一.vaformat C++日志接口通常有两种形式:流输入形式,printf形式. 我采用printf形式,因为流 ...
- boost::lexical_cast用法的测试程序
boost::lexical_cast用法的测试程序 实现功能 C++实现代码 实现功能 boost::lexical_cast用法的测试程序 C++实现代码 #include <boost/m ...
- boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double
boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double 实现功能 C++实现代码 实现功能 boost: ...
- boost::lexical_cast模块测试 Source 是否不可复制
boost::lexical_cast模块测试 Source 是否不可复制 实现功能 C++实现代码 实现功能 boost::lexical_cast模块测试 Source 是否不可复制 C++实现代 ...
- boost::lexical_cast
编译有boost库即可 不需要加特殊编译命令 #include <iostream> #include <boost/lexical_cast.hpp> #include &l ...
最新文章
- Crystal Reports 财务日记帐凭证套打设计
- 概述VB.NET正则表达式简化程序代码
- 从数学优化到视觉设计
- Mr.J--Java基础问题30问
- 学校计算机教室局域网的建立,校园局域网组建及配置.pdf
- 下行物理信道rs_这些CH结尾的LTE物理信道傻傻分不清楚?快来看这篇文章!
- 重置Mysql自增列的开始序号
- python小程序设计4s店_python自写的车牌识别小程序,完全自主实现。图片处理
- Java中的对象都是在堆上分配的吗?
- [struts2学习笔记] 第五节 编写struts2的action代码
- 树莓派基于motion的usb摄像头监控
- 网络计算机是第几代,操作系统 是在计算机发展的第几代出现的?
- 支付宝统一收单接口实现支付宝支付
- h5 android上传本地视频文件,关于webview适配H5上传照片或者视频文件的方法
- Visual Studio 2015官方汇总包括下载和视频
- wordpress cookies 遇到预料外错误 阿里云虚拟机
- streamx平台部署
- CF B. Sonya and Exhibition
- linux sh文件格式,SH文件扩展名 - 什么是.sh以及如何打开? - ReviverSoft
- ASP.NET MVC 远程请求图片 转化成BASE64然后通过HTTP输出流显示
热门文章
- Exception in thread “main“ org.apache.spark.sql.catalyst.parser.ParseException: extraneous input ‘$
- Android 检索相册视频文件
- 《第四部分-练习题:微信朋友圈、支付宝支付功能测试点》
- qnx slm7.1(程序员开发手册-翻译)
- Myeclipes 10 cracker.jar破解文件指定路径错误
- 骁龙435/MSM8940处理器详细规格(补充说明)
- 红蜻蜓抓图软件测试简历,红蜻蜓抓图精灵
- 几款软件界面模型设计工具
- 电脑开机内存占用过高处理
- 嘉兴学院计算机研究生导师,延安大学—嘉兴学院联合培养硕士研究生导师见面会召开...