SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Hobbit en Miércoles 3 de Diciembre de 2003, 01:17

Título: ..:: Archivos ::..
Publicado por: Hobbit en Miércoles 3 de Diciembre de 2003, 01:17
Hello World.

Como  trabajar con un fichero que tenga cierta estructura?

struct clientes
{
  char rut[12], nom[15], ape[30], dir[15], fono[8], email[25];
}

char linea[100];

Lo que hago por el momento es leer por linea

fgets(linea,10,file);

como lo hago para salto de linea?

Si alguien me puede ayudar estare muy agradecido.  :beer:
Título: Re: ..:: Archivos ::..
Publicado por: Martin Candurra en Miércoles 3 de Diciembre de 2003, 10:24
Mira la funcion fgets es para trabajar con archivos de texto.
Cuando el archivo a leer tiene una estructura del tipo que mostras te conviene guardarlo y leerlo como binario.

Debrías leer sobre las funciones

ssize_t fread(void *p, size_t tamaño, size_t bloques, FILE *);
ssize_t fwrite(void *p, size_t, size_t, FILE *);

Donde tamaño debería ser = sizeof(struct clientes);
y bloques debería tomar como valor la cantidad de bloques que querés leer de una vez.
No te olvides de tener memoria reservada en p, así evitas problemas.
Título: Re: ..:: Archivos ::..
Publicado por: mabrev en Miércoles 3 de Diciembre de 2003, 14:15
Hola:

  Otra función muy útil (al menos para mí), es fscanf, qué es muy similar al scanf, funcionando igual que ésta en cuanto a parámetros, sólo que en vez de leer de la entrada estándar, lee de un fichero.

    int fscanf(FILE *fichero, const char *formato, ...);

Saludos.
Título: Re: ..:: Archivos ::..
Publicado por: JuanK en Domingo 7 de Diciembre de 2003, 16:41
Tambien lo puedes hacer con fread. :devil: