Функция to_chars
Функция to_chars из заголовочного файла charconv
преобразует число в строковое представление. В отличие от
to_string, она не выделяет динамическую память, а записывает
результат в уже существующий буфер. В первый параметр мы передаем
указатель на начало буфера, во второй - указатель на его конец, а
в третий - само число для преобразования. Функция возвращает
структуру с указателем на символ после последнего записанного и
кодом ошибки.
Синтаксис
to_chars(first, last, value)
to_chars(first, last, value, base)
Пример
Давайте преобразуем число 123 в строку и выведем результат:
#include <iostream>
#include <charconv>
using namespace std;
int main()
{
char buf[20];
int num = 123;
auto res = to_chars(buf, buf + sizeof(buf), num);
*res.ptr = '\0';
cout << buf << endl;
return 0;
}
Результат выполнения кода:
123
Пример
Давайте преобразуем число 255 в шестнадцатеричную строку,
указав основание системы счисления:
#include <iostream>
#include <charconv>
using namespace std;
int main()
{
char buf[20];
int num = 255;
auto res = to_chars(buf, buf + sizeof(buf), num, 16);
*res.ptr = '\0';
cout << buf << endl;
return 0;
}
Результат выполнения кода:
"ff"
Пример
Давайте преобразуем число с плавающей точкой 3.14 в строку:
#include <iostream>
#include <charconv>
using namespace std;
int main()
{
char buf[20];
double num = 3.14;
auto res = to_chars(buf, buf + sizeof(buf), num);
*res.ptr = '\0';
cout << buf << endl;
return 0;
}
Результат выполнения кода:
3.14
Смотрите также
-
функция
from_chars,
которая преобразует строку в число -
функция
to_string,
которая преобразует число в строку -
функция
stoi,
которая преобразует строку в int -
функция
stod,
которая преобразует строку в double