Если вы имеете дело с небольшим размером файла, я рекомендую, чтобы чтение всего файла было проще. Затем поработайте с буфером и снова запишите весь блок. Они показывают, как читать блок - при условии, что вы заполняете открытый файл ввода / вывода сверху. Ответ
// open the file stream
.....
// use seek to find the length, the you can create a buffer of that size
input.seekg (0, ios::end);
int length = input.tellg();
input.seekg (0, ios::beg);
buffer = new char [length];
input.read (buffer,length);
// do something with the buffer here
............
// write it back out, assuming you now have allocated a new buffer
output.write(newBuffer, sizeof(newBuffer));
delete buffer;
delete newBuffer;
// close the file
..........