estube mirando tu codigo...
prueba lo siguiente..
en la seccion de eliminacion del archivo no uses la clase ofstream, utiliza fstream..
fstream(MIARCHIVO, ios::in||ios::out||ios::binary||ios::app);
porq si no pones el ios::app se toma como default q trunq el archivo
y eso es lo q borra el archivo completo..
supongo q es similar lo q pasa con el ofstream pero no recuerdo bien xq hace rato no toco el ofstream ni el ifstream...
prefiero utilizar FSTREAM
espero t sirva
un abrazo