entradaRg.getline(nombre,50);
Eso lee 50 caracteres, hasta el fin de linea. Lo que implica, que salvo que casualmente el nombre tenga 50 caracteres (contando espacios), va a leerlo todo.
Lo que debes hacer es, primero, leer la linea entera:
string linea;
getline(entradaRg, linea);
Una vez tengas la linea completa en la string, vas separando sus componentes. Por ejemplo, para sacar el primer número, harías:
size_t posicion;
posicion = linea.find(' '); // Buscas el primer espacio, empezando desde el principio
string cedulaStr = linea.substr(0,posicion); // Coge una subcadena que empieza en 0, y coge X caracteres
// En este caso coincide que la posicion del espacio es el numero de caracteres
cedula = stoi(cedulaStr); // Convierte la cadena numérica a un entero
Si tienes dudas de alguna función, puedes buscar en esta página. Por ejemplo, aquí ves stoi:
http://www.cplusplus.com/reference/string/stoi/Como el nombre supongo que no sabes cuantas palabras puede ser, deberías buscar primero la última parte, el código. Para ello, puedes usar rfind():
posicion = linea.rfind(' ');
codigo = stoi( linea.substr(posicion+1) );
rfind() empieza a buscar el caracter o cadena desde el final.
Por cierto, find() y rfind() te retornan el índice de la primera ocurrencia en la string.
El segundo parámetro de find() y rfind() es opcional, y es el índice desde el que quieres empezar a buscar.