c++ boost库学习-01-lexical_cast

本文介绍了C++标准库中的数值转换函数,如atof、atoi、atol、itoa和gcvt,以及Boost库提供的lexical_cast函数,用于在不同数据类型间进行转换。示例代码展示了如何使用这些函数进行字符串与整型、浮点型之间的转换,包括进制转换和四舍五入。
摘要由CSDN通过智能技术生成

一、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;

		//字符串转为float
		float f = boost::lexical_cast<float>("123.456");
		std::cout << f << std::endl;

		//字符串转为double
		double d = boost::lexical_cast<double>("3.14159");
		std::cout << d << std::endl;

		//取前3位字符转换为double
		double d1 = boost::lexical_cast<double>("3.14159", 3);
		std::cout << d1 << std::endl;

		//double转为string
		std::string s = boost::lexical_cast<std::string>(1.121415926);
		std::cout << s << std::endl;

		//16进制数转为string
		std::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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发如雪-ty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值