Я хочу записать информацию в последние 32 символа двоичного файла. Но когда я вызываю свою функцию writeInfo, она удаляет весь контент. Я могу прочитать данные до того, как напишу, но после того, как я напишу с помощью этой функции, она удаляет все содержимое вместо записи.
void Info::writeInfo(char *filedestination)
{
ofstream test;
test.open(filedestination, ios::binary);
test.seekp(-32, ios::end); // not sure about seekp
test.write(info, 31);
test.close();
}
Надеюсь, вы можете помочь, спасибо
Вы должны открыть файл в режиме чтения-записи, чтобы предотвратить вызов open
от его усечения:
test.open(filedestination, ios::binary | ios::in | ios::out);
http://www.cplusplus.com/reference/cstdio/fseek/
попробуйте использовать fseek (). ссылка выше документация