Вы запрашиваете у пользователя только 1 идентификатор, а затем перезаписываете существующий файл новым файлом, содержащим этот 1 идентификатор.
std::ofstream
уничтожает содержимоесуществующий файл, если вы явно не просите его не делать этого. Итак, для того, что вы пытаетесь сделать, чтобы добавить новый идентификатор в конец существующего файла, вам необходимо включить флаг app
или ate
при открытии std::ofstream
(см. C ++ Обработка файлов: разница между ios :: app и ios :: ate? ), например:
ofstream IdData ("data.txt", ios::app);
Или:
ofstream IdData ("data.txt", ios::ate);