Запись в последние 32 символа файла

Я хочу записать информацию в последние 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();
}

Надеюсь, вы можете помочь, спасибо

1

Решение

Вы должны открыть файл в режиме чтения-записи, чтобы предотвратить вызов open от его усечения:

test.open(filedestination, ios::binary | ios::in | ios::out);
2

Другие решения

http://www.cplusplus.com/reference/cstdio/fseek/

попробуйте использовать fseek (). ссылка выше документация

0

По вопросам рекламы [email protected]