Я пишу метод для замены указанной строки из двоичного файла, и он записывает NULL до позиции, которую я установил с помощью seekp, затем записывает строку и закрывает поток. Я только хочу заменить несколько байтов в файле. Перед этим фрагментом кода я пробовал использовать ofstream с флагами ios :: binary и ios :: out. Что плохого, чтобы уничтожить все данные в файле?
Перед этим фрагментом кода я открываю файл с экземпляром ifstream, чтобы прочитать ту же позицию, проверяя первый байт в строке. Я комментирую это только для информации.
Спасибо всем!
Код:
fstream ofs();
ofs.open(nomArchBin,ios::in | ios::out | ios::binary);
if (!ofs.good()) {
cout << "...";
return;
}
ofs.seekp(despEnArchivo,ios::beg);
char* registroChar = registroACadena(reg);
ofs.write(registroChar,cabecera.tamanioReg);