#include
<charconv>
to_chars_result to_chars(char* first, char* last, INTEGER value, int base = 10); to_chars_result to_chars(char* first, char* last, FLOAT value); to_chars_result to_chars(char* first, char* last, FLOAT value, chars_format fmt); to_chars_result to_chars(char* first, char* last, FLOAT value, chars_format fmt, int precision);
Konvertiert Ganzzahl bzw. Gleitkommazahl in Zeichenkette.
first | Startposition |
last | Endposition |
last | Endposition |
base | Zahlenbasis |
fmt | Zahlformat |
precision | Anzahl der Nachkommastellen |
Rückgabewert: Ergebnis enthält Zeiger hinter das Ende der konvertierten Zeichenkette bzw. Fehlercode. Achtung! Die entstandene Zeichenkette ist nicht nullterminiert!
#include <charconv> #include <iostream> #include <string> #include <system_error> int main() { const size_t SIZE = 100; std::string s(SIZE, '*'); char* buffer = &s[0]; int value = 1234567890; if (auto [end, error] = std::to_chars(buffer, buffer+SIZE, value); error==std::errc()) std::cout << s << " " << (end-buffer) << " Bytes written\n"; else std::cout << buffer << '\n' << std::string(end-buffer, ' ') << "^ error: " << std::make_error_code(error).message() << '\n'; value = 0; if (auto [end, error] = std::from_chars(buffer, buffer+SIZE, value); error==std::errc()) std::cout << value << " " << (end-buffer) << " Bytes read\n"; else std::cout << buffer << '\n' << std::string(end-buffer, ' ') << "^ error: " << std::make_error_code(error).message() << '\n'; } }