Problema con espacios de un string

Iniciado por danibdn, 30 Mayo 2011, 10:06 AM

0 Miembros y 1 Visitante están viendo este tema.

danibdn

Buenas, pues tengo un pequeño problema con un programa para guardar contactos en un archivo, usando struct, punteros, funciones...etc.
Al guardarse en el archivo se queda:

1.Nombre
2.Apellido
3.Segundo apellido
4.Direccion
5.Telefono

En el archivo queda bien guardado, pero al imprimirlo en el programa imprime:

1.Nombre
2.Apellido
3.Segundo apellido
4.Primera palabra de direccion
5.Segunda palabra de direccion

Y imprime otro contacto con:

1.Tercera palabra de direccion
2.Telefono

Os dejo la funcion que muestra todos los contactos guardados en el archivo:

void mostrar(void){
   int ct;
   for (ct=0;ct<p1;ct++)
   {
     printf("\n\nNom: %s %s %s\n",  entrada[ct].nom, entrada[ct].cognom1, entrada[ct].cognom2);
     printf("\nDireccio: %s\n", entrada[ct].direccio);
     printf("\nTelefon: %s\n", entrada[ct].telefon);
   

       //printf("\nEntrada %d: \n%s \n%s \n%s \n%s \n%s\n", ct, entrada[ct].nom,entrada[ct].cognom1, entrada[ct].cognom2,entrada[ct].direccio,entrada[ct].telefon);
   }
   system("pause");
   return;
}


Como puedo hacer que me lo imprima correctamente?
Algo he leido del getline, pero tampoco sabria usarlo...
Muchas gracias por adelantado, y un saludo!

Fer995

creo que tu problema viene porque estas leyendo las direcciones etc con fscanf o scanf que lee hasta el primer espacio que encuentra o si no asta el fin d cadena!

deberias usar mejor fgets que lee lineas enteras con espacios.

los printf estan bien creo!