Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: danibdn en 30 Mayo 2011, 10:06 am



Título: Problema con espacios de un string
Publicado por: danibdn en 30 Mayo 2011, 10:06 am
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!


Título: Re: Problema con espacios de un string
Publicado por: Fer995 en 7 Junio 2011, 03:41 am
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!