Как говорит Игнасио, большинство файловых систем не поддерживают вставку в файлы, не говоря уже о текстовых файлах.А понятие стандартной библиотеки C ++ о файле представляет собой простой поток байтов.Таким образом, фиксированная сводная таблица размеров в начале, как вы, похоже, намеревались использовать в своем коде, является одним из практических решений (примечание: ваш код не достигает этого фиксированного размера).
Однако некоторые общие файловые системы поддерживают ассоциирование дополнительной информации с файлами.
Например, Windows NTFS поддерживает несколько потоков данных на файл:
C:\test> echo blah blah >data.txt
C:\test> type data.txt
blah blah
C:\test> echo some info >data.txt:summary
C:\test> type data.txt
blah blah
C:\test> more <data.txt:summary
some info
C:\test> _
Например, этот механизм используетсяПроводник Windows для добавления сводной информации в файлы.
Итак, если вы программируете систему, которая поддерживает несколько потоков, и не планируете переносить программу или данные в другие системы, вы можете рассмотретьфайл с несколькими потоками.
Третий вариант - эффективно реализовать это самостоятельно, имея два или более связанных файла.Например, один файл данных и один сводный файл.Например, с помощью соглашения об именовании, связывающего их.
Cheers & hth.,