Eso pasa porque almacenas el nombre en un caracter, y el tipo caracter solo soporta un caracter y al ver que no cabe, salta al otro std::cin sin pedirte datos.
Si te fijas aqui, pides un nombre y lo almacenas en una variable de tipo char donde solo peudes almacenar un caracter.
Código:
cout<<"Ingrese nombre:\n"<<endl;
cin>>datospersonales.nombre;
Para solucionar este problema, donde declaraste la estructura, lo cambias por :
Código:
public:struct dat{
int cedula,ano_ingreso,edad;
char nombre[256],apellido[256],direccion[256];
}datospersonales;
Ahora las variables aceptan hasta 256 caracteres, lo puedes cambiar como quieras.
Saludos