这是我用于从任意大小的文件中读取并写入到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语句中添加了整段代码。