Ayuda con fscanf Solo lee hasta espacios

Suponganse , que yo quiero hacer un programa en el cual ingreso el nombre y apellido de una persona, y que al cerrar el programa y volver a abrirlo, sea capaz de Recuperar el nombre que se ingresó anteriormente...
Este es el codigo que yo tengo:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
FILE *pf;
char nombre[200];
if((pf=fopen("Datos","r"))!=NULL){
fscanf(pf,"%s",nombre);
}
cout<<"El Nombre ingresado anteriormente era: "<<nombre<<endl<<endl;
cout<<"Ingrese su nombre y apellido: "<<endl;
gets(nombre);
if((pf=fopen("Datos.txt","w"))!=NULL){
fprintf(pf,"%s\n",nombre);
}
system("PAUSE");
return EXIT_SUCCESS;
}
Pero aca esta el error, fscanf solo lee hasta que encuentra algun espacio tabulacion o como lo quieran llamar, por lo tanto, en el caso que ingresara el nombre " Pedro Gomez" , Solo me diria: " EL nombre ingresado anteriormente era: Pedro", y no me diria lo que esta despues del Espacio... Como arreglo esto?

Añade tu respuesta

Haz clic para o