Son unos detalles al abrir el archivo, en la función leer_lista:
Código:
// Las siguientes dos lineas no van, causan un error al leer
//entrada >> nombre;
//entrada >> sueldo;
while (!entrada.eof()) {
entrada >> nombre;
entrada >> sueldo;
if(entrada.eof()) break; // Agregué esto, evita que se lea el último empleado dos veces.
nuevo=new (Nodo);
(*nuevo).info.nombre=nombre;
(*nuevo).info.sueldo=sueldo;
if (l==NULL) {
l=nuevo;
anterior=nuevo; // Faltaba esto, porque sino cuando se ingrese el siguiente empleado fallará la instrucción (*anterior).sig=nuevo; porque anterior no va ha estar inicializado.
} else {
(*anterior).sig=nuevo;
anterior=nuevo;
}
(*nuevo).sig=NULL;
} // Hasta aquí es donde debe llegar el while
Saludos.