Non ti serve ios::ate : questo serve a posizionare il cursore alla fine del file quando è in lettura, ma se lo apri in scrittura i dati che scrivi saranno sostituiti a quelli già presenti a meno che non apri lo stream con la modalità ios::app