C++17 中的 <charconv> 头文件

2025年3月21日 | 阅读 4 分钟

<charconv> 头文件包含多种用于将字符序列转换为数字信息以及反之的方法。它被认为比用于相同目的的 <cstdlib> 头文件函数更有效。<charconv> 头文件提供的函数通常比 <cstdlib> 头文件提供的函数更快。

它于 C++17 中引入,开发此头文件的主要目标是提高代码的复杂性和速度。

<charconv> 头文件中的函数

charconv 库有两个函数

1. to_chars()

to_chars() 方法将数字转换为其匹配的字符表示形式并将输出放入缓冲区中。

语法

它具有以下语法:

参数

initial 和 final: 指向将写入输出的缓冲区的起始和结束位置的指针。

val: 要转换的数字值。

返回值

它返回一个 to_chars_result 类型的对象,该对象有两个成员

  • ptr: 指向已输入的字符的结束引用之后的第一个字符的引用。
  • ec: 这是一个错误号,用于确定转换过程是否完成。如果转换成功,指示问题的代码将设置为 errc;否则,如果发生错误,它将设置为不同的错误代码。

示例

此代码演示如何使用 <charconv> 头文件中的 to_chars() 方法将整数值转换为字符序列。

文件名: Tochars. cpp

输出

The Converted value: 44

2. from_chars() 函数

from_chars() 方法用于将数字的字符表示形式转换为其数字形式。

参数

  • initial 和 final: 指示要转换的字符的起始和结束位置。
  • value: 要转换的数字的引用。

返回值

它返回 from_chars_result 对象,该对象有两个成员

  • ptr: 指向已输入的最后一个字符之后的第一个字符的指针。
  • ec: 这是一个错误代码,指示转换是否成功。如果转换过程成功,错误代码将设置为 errc;否则,如果发生错误,它将设置为一个错误代码。

示例

文件名: Fromchars.cpp

输出

48

示例 2

文件名: Header.cpp

输出

The Converted value is: 126.78

使用 <charconv> 函数的好处

以下是使用 C++ 中 <charconv> 库函数的一些好处

  • 性能: 此头文件包含大量常见函数,可减少内存分配并提高代码性能。
  • 错误处理: 它返回 from_chars_result,指示转换是否成功。
  • 灵活性: 它可以处理各种输入类型,并确保代码的适应性。