c++ boost库学习-01-lexical_cast
一、C/C++数值转换函数
C/C++语言提供了几个标准库函数,可以将字符串、整型浮点型等相互转换。
atof():将字符串转换为双精度浮点型值。
atoi():将字符串转换为整型值。
atol():将字符串转换为长整型值。
itoa():将字符串转为整型值。
gcvt():将浮点型数转换为字符串,取四舍五入。
解决方法:在最开头加如下的代码:
#pragma warning(disable:4996)
二、boost数值转换lexical_cast
lexical_cast的优势
#include<boost/lexical_cast.hpp>中定义了此函数lexical_cast使用统一接口形式实现任意类型之间的转换,增强了易用性。
#pragma warning(disable:4996)
#include<iostream>
using namespace std;//包含头文件
#include<boost/lexical_cast.hpp>
using boost::lexical_cast;//声明,省略boost名字空间前缀int main()
{{//字符串转整数int a = atoi("123");cout << a << endl;//整数转字符串char b[64] = { 0 };itoa(16, b, 2);//将10进制的16转为为2进制并保存到数组d中cout << b << endl;//字符串转浮点数double c = atof("1.23456");cout << c << endl;//浮点数转字符串char d[64] = { 0 };gcvt(1.23456, 4, d);//四舍五入cout << d << endl;}cout << "使用boost\n";
//字符串转为数值int n = boost::lexical_cast<int>("520");std::cout << n << std::endl;//字符串转为floatfloat f = boost::lexical_cast<float>("123.456");std::cout << f << std::endl;//字符串转为doubledouble d = boost::lexical_cast<double>("3.14159");std::cout << d << std::endl;//取前3位字符转换为doubledouble d1 = boost::lexical_cast<double>("3.14159", 3);std::cout << d1 << std::endl;//double转为stringstd::string s = boost::lexical_cast<std::string>(1.121415926);std::cout << s << std::endl;//16进制数转为stringstd::string shex = boost::lexical_cast<std::string>(0x000a);std::cout << shex.c_str() << std::endl;system("pause");return 0;
}
结果:
https://edu.csdn.net/course/detail/8697?spm=1003.2449.3001.8293.7
c++ boost库学习-01-lexical_cast相关推荐
- Boost库学习笔记(二)算法模块-C++11标准
Boost库学习笔记(二)算法模块-C++11标准 一.综述 Boost.Algorithm是一系列人通用推荐算法的集合,虽然有用的通用算法很多,但是为了保证质量和体积,并不会将太多通用算法通过审查测 ...
- Boost库学习笔记(一)安装与配置
Boost库学习笔记(一)安装与配置 1. 获取boost https://www.boost.org/users/history/version_1_79_0.html 任选其一 boost的目录结 ...
- Boost库学习(0)
2019独角兽企业重金招聘Python工程师标准>>> 最近看了C++11标准,感觉C++的变得更强大了,连语法都有了点变化.(最后一次用C++可能还是在学校时,工作中一直用的是C, ...
- boost库学习入门篇
学习及使用Boost库已经有一段时间了,Boost为我的日常开发中带来了极大的方便,也使得我越来越依赖于boost库了.但boost功能太多,每次使用还是得翻看以前的 资料,所以为了以后可以更方便的使 ...
- Boost库学习の时间日期处理
记录一下Boost程序库的学习 系统:win11下WSL2,ubuntu子系统 安装Boost程序库 sudo apt-get install libboost-dev 安装好了以后就可以在/usr/ ...
- c++ boost库学习boost::any用法
一.boost::any 基本知识 1.1 boost::any() 作用:是定义一个变量来存放任意类型的数据,它类似于比如像纯面向对象语言java或.net中的Object类型. Boost::An ...
- boost库学习随记五 Boost.Locale 之字符转换 gbk utf8 big5 string wstring等
Boost.Locale是一个库,它提供高质量的本地化的设施在C + +的方式.它最初是设计的一部分CppCMS - C + +的Web框架的项目,然后促成了提升. Boost.Locale提供强大的 ...
- boost库学习④:boost::asio::buffer
asio::buffer常用的构造方法 字符数组 char d1[128]; size_t bytes_transferred = socket.receive(boost::asio::buffer ...
- BOOST库学习之正则表达式
前言 本次笔记记录如下知识点 正则表达式的简介 正则表达式的匹配 正则表达式的查找 正则表达式的替换 正则表达式的迭代 一.正则表达式的简介 1.正则表达式的匹配规则 正则表达式定义了一套复杂的语法规 ...
- Boost库学习笔记(4)—— Signals2
一.概述 Boost.Signals2库一个信号和槽管理系统的实现.信号表示带有多个目标的回调,在类似的系统中也成为发布者或者事件.信号被连接到一些槽上,这些槽是回调接收者(也成为事件目标或者订阅方) ...
最新文章
- 《深入理解Java虚拟机》读书笔记七
- 云时代架构阅读笔记十五——架构设计思维(一)
- pragma名字的来源
- 分酒问题matlab代码,matlab葡萄酒分类数据归一化问题
- IBM的SOA方法论之一——五个切入点和八个场景
- IntelliJ IDEA搭建一个web项目含配置tomcat
- c 向html页面传值,html页面之间的传值,获取元素和方法的调用
- ACM第一次集训 - 动态规划问题
- CodeForces-999D Equalize the Remainders (贪心+神奇的STL)
- 关于TeamViewer中的ITbrain
- docker 训练深度学习_基于 Alluxio 数据缓存的大规模深度学习训练性能优化
- 神州三号开发板stm32 f103ze jlink连接失败拜求高手指点
- MySql 递归应用
- 使用JavaBean创建您的网上日历本(2)
- 企业级BOM项目建设概况
- 国瀚实业|怎么才能做好互联网投资理财
- 编写python程序、计算账户余额_《易学Python》——第1章 为何学习Python 1.1 学习编程...
- 自动化测试 - 12306火车票网站自动登录工具
- 印象笔记 linux 命令行,在Linux的命令行下使用Evernote的教程
- hcna学习小结第一天