I need help because my code saves the txt correctly but at the time of reading it, returns the linked list empty.

HTML Code:
#include "Empleado.h"



Empleado::Empleado() {
	cedula = "";
	nombre = "";
	apellidos = "";
	nacimiento = "";
	direccion = "";
	telefono = "";
}

Empleado::Empleado(string c, string n, string a, string na, string d, string t) {
	cedula = c;
	nombre = n;
	apellidos = a;
	nacimiento = na;
	direccion = d;
	telefono = t;
	f = new Fecha();
}

Empleado::~Empleado() {
}

// SETS & GETS
string Empleado::toString() {
	stringstream s;
	s << "=================| EMPLEADO |=================" << endl;
	s << "Cedula: " << cedula << endl;
	s << "Nombre: " << nombre << endl;
	s << "Apellidos: " << apellidos << endl;
	s << "Nacimiento(DD/MM/AAAA):" << f->obtenerFecha(nacimiento) << endl;
	s << "Direccion: " << direccion << endl;
	s << "Telefono: " << telefono << endl;
	s << "==============================================" << endl;
	return s.str();
}


#include "ListaEmpleado.h"



ListaEmpleado::ListaEmpleado() {
	primero = NULL;
	cantidad = 0;
}

ListaEmpleado::~ListaEmpleado() {
	NodoEmpleado* actual = primero;
	while (actual != NULL) {
		NodoEmpleado* temp = actual->getSig();
		delete actual;
		actual = temp;
	}
}

void ListaEmpleado::limpiar() {
	NodoEmpleado* actual = primero;
	while (primero) {
		primero = primero->getSig();
		delete actual;
	}
	actual = NULL;// o colocar delete actual
	primero = NULL;// o colocar delete primero

	cantidad = 0;
}

void ListaEmpleado::ingresarEmp(Empleado* emp1) {
	NodoEmpleado* actual;
	actual = primero;
	if (primero == NULL) {
		primero = new NodoEmpleado(NULL, emp1);
		cantidad++;
	}
	else {
		while (actual->getSig() != NULL) {
			actual = actual->getSig();
		}
		actual->setSig(new NodoEmpleado(NULL, emp1));
		cantidad++;
	}
}


void ListaEmpleado::eliminarEmp(string ced) {
	NodoEmpleado* anterior = NULL;
	NodoEmpleado* actual = primero;
	while (actual && actual->getEmpleado()->getCedula() != ced) {
		anterior = actual;
		actual = actual->getSig();
	}
	if (!actual || actual->getEmpleado()->getCedula() != ced)//Si no lo encontro
		return;
	else {//Borrar el nodo
		if (!anterior)//si es el primer elemento
			primero = actual->getSig();
		else//si es un elemento intermedio o el ultimo
			anterior->setSig(actual->getSig());
		delete actual;
	}
}


bool ListaEmpleado::buscaEmpleado(string c) {
	NodoEmpleado* actual = primero;
	while (actual != NULL) {
		if (actual->getEmpleado()->getCedula() == c) {
			return true;
		}
		else 
			actual = actual->getSig();
	}
	return false;
}

void ListaEmpleado::modificarEmpleadoNom(string ced, string nuevo) {
	NodoEmpleado* actual = primero;
	while (actual->getEmpleado()->getCedula() != ced) {
		actual = actual->getSig();
	}

	if (actual->getEmpleado()->getCedula() == ced) {
		actual->getEmpleado()->setNombre(nuevo);
	}
}

void ListaEmpleado::modificarEmpleadoApe(string ced, string nuevo) {
	NodoEmpleado* actual = primero;
	while (actual->getEmpleado()->getCedula() != ced) {
		actual = actual->getSig();
	}

	if (actual->getEmpleado()->getCedula() == ced) {
		actual->getEmpleado()->setApellidos(nuevo);
	}
}

void ListaEmpleado::modificarEmpleadoNac(string ced, string nuevo) {
	NodoEmpleado* actual = primero;
	while (actual->getEmpleado()->getCedula() != ced) {
		actual = actual->getSig();
	}

	if (actual->getEmpleado()->getCedula() == ced) {
		actual->getEmpleado()->setNacimiento(nuevo);
	}
}

void ListaEmpleado::modificarEmpleadoDir(string ced, string nuevo) {
	NodoEmpleado* actual = primero;
	while (actual->getEmpleado()->getCedula() != ced) {
		actual = actual->getSig();
	}

	if (actual->getEmpleado()->getCedula() == ced) {
		actual->getEmpleado()->setDireccion(nuevo);
	}

}

void ListaEmpleado::modificarEmpleadoTel(string ced, string nuevo) {
	NodoEmpleado* actual = primero;
	while (actual->getEmpleado()->getCedula() != ced) {
		actual = actual->getSig();
	}

	if (actual->getEmpleado()->getCedula() == ced) {
		actual->getEmpleado()->setTelefono(nuevo);
	}
}

Empleado* ListaEmpleado::getEmpleado(string ced) {
	NodoEmpleado* aux = primero;
	while (aux->getEmpleado()->getCedula() != ced) {
		aux = aux->getSig();
	}
	if (aux->getEmpleado()->getCedula() == ced) {
		return aux->getEmpleado();
	}
	return NULL;
}

void ListaEmpleado::guardar() {
	NodoEmpleado* aux = NULL;
	ofstream file("ReporteEmpleado.txt", ios::out);
	if (file.is_open()) {
		aux = primero;
		file << "Cantidad empleados: " << cantidad << endl;
		while (aux) {
			string c = aux->getEmpleado()->getCedula();
			string n = aux->getEmpleado()->getNombre();
			string a = aux->getEmpleado()->getApellidos();
			string na = aux->getEmpleado()->getNacimiento();
			string d = aux->getEmpleado()->getDireccion();
			string t = aux->getEmpleado()->getTelefono();

			file << c << endl;
			file << n << endl;
			file << a << endl;
			file << na << endl;
			file << d << endl;
			file << t << endl;

			aux = aux->getSig();
		}
		file.close();
	}
}
void ListaEmpleado::cargar() {
	NodoEmpleado* aux = NULL;
	ifstream file("ReporteEmpleado.txt", ios::in);
	if (file.is_open()) {
		aux = primero;
		int cantidad = 0;
		int i = 0;
		while (aux && file.eof()) {
			//Empleado* emp;
			string c ;
			string n ; 
			string a ; 
			string na; 
			string d ;
			string t ;
			
			file>>c;
			file>>n;
			file>>a;
			file>>na;
			file>>d;
			file>>t;
			
			//emp->setCedula(c);
			//emp->setNombre(n);
			//emp->setApellidos(a);
			//emp->setNacimiento(na);
			//emp->setDireccion(d);
			//emp->setTelefono(t);

			ingresarEmp(new Empleado(c,n,a,na,d,t));
			cantidad++;

			aux = aux->getSig();
		}
		file.close();
	}
}

string ListaEmpleado::toString() {
	stringstream s;
	NodoEmpleado* aux = primero;
	s << "===================== LISTA DE EMPLEADOS ======================" << endl;
	while (aux) {
		s << aux->toString();
		aux = aux->getSig();
	}
	s << "===============================================================" << endl;
	return s.str();
}