【发布时间】:2017-11-25 02:16:22
【问题描述】:
我想从istream 读取多个字节到vector。我以为this 会给出答案,但它实际上是在问一个完全不同的问题。
到目前为止我的代码:
std::vector<char> read_buffer(std::istream& is, const std::size_t size) {
std::vector<char> buf;
buf.reserve(size);
is.read(buf.data(), size);
return buf;
}
这不起作用,因为vector是在它不知道的情况下写入的,所以在is.read之后,它的大小仍然是0,而不是size。实现此功能的正确方法是什么?
【问题讨论】:
-
好吧,如果你知道你正在阅读字符,你不能只阅读一定数量的字符吗?
-
reserve 只是分配内存:它没有设置大小。