Этот код удалит ваш файл и поместит в него совершенно новое содержимое.Проблема в строке
std::ofstream output(filename, std::ios::binary);
Это потому, что режим открытия по умолчанию ios::out | ios::trunc
(см., Например: Ввод / Вывод с файлами ). Это означает, что файл обрезается до нуля.байт.
Затем ваша функция seek () расширяет его до указанного размера (обычно с заполнением нулями) и, наконец, output.write()
записывает байт в конце.
Для того, чтобы сделать чтоВы хотите Я должен был указать следующие флаги ofstream: std::ios::binary|std::ios::out|std::ios::in
В настоящее время я не могу точно сказать, зачем нужен std::ios::in
, извините ...