我有一个大的字符串缓冲区和一个输入流
basic_string<uint8_t> *buf = ......;
istream in = ......;
将文件的一部分读入字符串的最有效方法是什么?比如说,文件中的第 0xE3CC 到第 0x1A481 个字节。
这里 istream::read 似乎不是一个答案,因为它读取到一个原始的 char[]。由于数据非常大,因此使用临时变量 [in] 效率不高。
遗憾的是,我没有 C++0x,所以无法使用 copy_n。你有什么建议?谢谢。
最佳答案
buf->resize(size);
in.read(&((*buf)[0], size);
顺便说一句,你真的需要 buf
作为指针吗?
关于c++ - 将二进制文件的一部分读入预先存在的 basic_string 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19515384/