我正在将一些数据从流中复制到字符串中,所以我考虑使用实际字符数加上一个终止字符的方式重新调整字符串大小,像这样:
然而,在这种情况下,
std::istringstream stream { "data" };
const std::size_t count = 4;
std::string copy;
copy.resize(count + 1);
stream.read(©[0], count);
copy[count] = 0;
然而,在这种情况下,
copy
表示它的大小为 5
(这与我调用 resize(5)
一致)。这是否意味着 resize()
将自动添加额外的终止字符?这就意味着在调用 read(&data[0], count)
后无需担心追加 \0
。
std::string
保证了空终止缓冲区。 - 101010