Se possono esserci anche cognomi o nomi doppi (Maria Angela o simili) allora non va bene e devi leggere tutta la riga con la

getline
http://www.cplusplus.com/reference/s...tring/getline/

in una sola stringa per poi dividerne i contenuti (anche se è un po' complicato se non c'è una regola precisa).

Altrimenti, dovrebbe andare bene il codice che hai utilizzato ma che non hai voluto provare .