Без создания нового файла невозможно удалить строку в середине файла.Если вы не замените его на месте.
Так что в этом состоянии, вы просто должны использовать метод ниже:
std::ostream::seekp
Обратите внимание на этот пример:
// position in output stream
#include <fstream> // std::ofstream
int main () {
std::ofstream outfile;
outfile.open ("test.txt");
outfile.write ("This is an apple",16);
long pos = outfile.tellp();
outfile.seekp (pos-7);
outfile.write (" sam",4);
outfile.close();
return 0;
}
В этом примере, Tellp используется для получения позиции в потоке после операции записи.Затем указатель перемещается назад на 7 символов, чтобы изменить файл в этой позиции, поэтому конечное содержимое файла:
Это пример