使用ifstream进行每次阅读后我是否需要寻求?

Por*_*ker 3 c++ file-io binaryfiles

这是我从任何大小的文件读取的循环,并且每次写入1016字节的char*数据包1016字节然后发送它(发送未包括在内).

seekg()是必要的吗?或者读取是否已将指针移动到下一个块的前面?

ifstream file (packet.message, ios::in|ios::binary|ios::ate);
if(file.is_open()) {
    size = file.tellg();
    file.seekg(0, ios::beg);
    for(int i = 0; !ios::eof; i++) {
        memset(packet.message,0,1016*sizeof(char));
        file.read(packet.message,1016*sizeof(char));
        file.seekg(i*1016*sizeof(char));
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是写入文件的问题,因为你只是一直写到文件的大小正确.

编辑:在if语句中添加了整个代码.

Jon*_*Jon 6

这不是必需的.从上次看到文件指针的位置继续读取,就像写入一样.