【发布时间】:2018-08-12 09:48:49
【问题描述】:
http://en.cppreference.com/w/cpp/utility/to_chars
参考并没有说明这一点,但这个例子(对我来说)显然使用了一个以 null 结尾的字符串,否则它怎么知道在哪里结束,因为 std::array::data 只返回一个指针。
#include <iostream>
#include <charconv>
#include <array>
int main()
{
std::array<char, 10> str{};
std::to_chars(str.data(), str.data()+str.size(), 42);
std::cout << str.data();
}
不幸的是,我无法自己测试它,因为 AFAIK 还没有编译器支持它: https://en.cppreference.com/w/cpp/compiler_support
编辑:
忘记了str 是用零初始化的,但是问题仍然相关。
【问题讨论】:
-
来自 cppreference 链接:"成功时,返回一个 to_chars_result 类型的值,使得 ec 等于值初始化的 std::errc 并且 ptr 是写入的字符。请注意,字符串不是以 NUL 结尾的。" [我的粗体字]
标签: c++ c++17 string-conversion