Всякий раз, когда вы открываете выходной поток в C ++ и не передаете ему какие-либо флаги openmode, файл открывается для записи.После открытия потока указатель файла указывает на начало файла.То есть существующее содержимое этого файла перезаписывается.Если вы не хотите этого делать, вы должны указать, что любые записи должны добавлять данные в файл, а не перезаписывать их.Это можно сделать следующим образом:
std::ofstream stream("my_file.txt", std::ios_base::app);
Таким образом, операции записи добавляют данные в файл вместо перезаписи существующих данных.