no sé cómo solucionar el tema del espacio, es decir si escribo un nombre compuesto sólo me imprime al revés el primer nombre.
Eso sucede porque el operador ">>" solo lee una palabra, para leer una linea de texto debes utilizar la funcion
getline.
Y
por favor cuando publiques código fuente utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).
Un saludo