Я хочу вставить и удалить некоторые символы посреди файла.
fopen () и fdopen () просто позволяют добавлять в конце.
Есть ли какой-либо простой метод или существующая библиотека, которые позволяют эти действия?
Простого метода не существует. Вам придется делать это вручную. Например:
Как вам уже сказали другие, вы должны делать это вручную и использовать fseek, чтобы добраться до места, в котором вам нужно вставить или добавить символы. Вы можете легко добавить новые символы в середине, сделав следующее:
Если вы хотите удалить символы в середине, то это более сложная задача. На самом деле вы не можете сделать файл короче. У вас есть две возможности: в первом случае вы просто
Во втором варианте вы:
Пункт четыре - "хитрый", потому что нет стандартного (переносимого) способа сделать это. Одна из возможностей - использовать системные вызовы операционной системы для усечения файла. Другая, более простая возможность - просто записать EOF в пункте 4. Файл будет, вероятно, больше, чем должен быть, но это поможет.
Используйте функцию fseek , чтобы переместить указатель файла в соответствующее место файла, а затем вы можете выполнить запись в этом месте. Но для этого вы должны знать, сколько байтов от конца или начала файла вы предпочитаете для записи.