我尝试将二进制文件内容的一部分读入字符串.为什么是字符串?我需要这个用于我的消息协议(使用protobuf).
以下工作非常好:
std::string* data = new std::string();
std::ifstream ifs("C:\\data.bin", std::ios::binary);
data->assign((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));
Run Code Online (Sandbox Code Playgroud)
但这是从头到尾读取文件.我想只阅读给定位置的零件.例如,从位置字节10开始:
std::string* data = new std::string();
std::ifstream ifs("C:\\data.bin", std::ios::binary);
ifs.seekg((10);
data->assign((std::istreambuf_iterator<char>(ifs)), ???????);
Run Code Online (Sandbox Code Playgroud)
但是如何调整结束或偏移?我没有找到任何例子.我知道ifstream.read()有缓冲区的例子.我在整个程序中使用了assign into string方法,并且真的很想找到一种方法来实现这一点.
谁能帮我?谢谢