这是我从任何大小的文件中读取的循环,并且每次写入一个 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));
}
}
我知道这不是写入文件的问题,因为您只需一直写到最后,直到文件大小合适。
编辑:在 if 语句中添加了全部代码。