C++新特性学习笔记--<charconv>

前言

  <charconv>是C++17新的标准库头文件,包含了相关类和两个转换函数。可以完成传统的整数/浮点和字符串互相转换的功能(atoi、itoa、atof、sprintf等),同时支持输出格式控制、整数基底设置并且将整数和浮点类型对字符串的转换整合了起来。是独立于本地环境、不分配、不抛出的。目的是在常见的高吞吐量环境,例如基于文本的交换( JSON 或 XML )中,允许尽可能快的实现。

chars_format

chars_format是作为格式控制的类定义在<charconv>头文件中

enum class chars_format {
    scientific = /*unspecified*/,
    fixed = /*unspecified*/,
    hex = /*unspecified*/,
    general = fixed | scientific
};

用于为 std::to_chars 及 std::from_chars 指定浮点格式的位掩码类型 (BitmaskType) 。

from_chars

struct from_chars_result {
    const char* ptr;
    std::errc ec;
};
std::from_chars_result from_chars(const char* first, const char* last,
                                  /*see below*/& value, int base = 10);
std::from_chars_result from_chars(const char* first, const char* last, float& value,
                                  std::chars_format fmt = std::chars_format::general);
std::from_chars_result from_chars(const char* first, const char* last, double& value,
                                  std::chars_format fmt = std::chars_format::general);
std::from_chars_result from_chars(const char* first, const char* last, long double& value,
                                  std::chars_format fmt = std::chars_format::general);

first, last - 要分析的合法字符范围
value - 存储被分析值的输出参数,若分析成功
base - 使用的整数基底: 2 与 36 间的值(含上下限)。
fmt - 使用的浮点格式, std::chars_format 类型的位掩码

to_chars

struct to_chars_result {
    char* ptr;
    std::errc ec;
};
std::to_chars_result to_chars(char* first, char* last, value, int base = 10);
  • 整数转字符串
    first, last - 要写入的字符范围
    value - 要转换到其字符串表示的值
    base - 使用的整数基底: 取值范围[2,36]。
std::to_chars_result to_chars(char* first, char* last, float       value,
                              std::chars_format fmt, int precision);
std::to_chars_result to_chars(char* first, char* last, double      value,
                              std::chars_format fmt, int precision);
std::to_chars_result to_chars(char* first, char* last, long double value,
                              std::chars_format fmt, int precision);
  • 浮点转字符串
    fmt - 使用的浮点格式, std::chars_format 类型的位掩码
    precision - 使用的浮点精度

参考链接

C++中文参考手册–<charconv>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值