[C con Clase] Manejo de archivos

Steven Davidson srd4121 en njit.edu
Mie Sep 24 22:31:06 CEST 2008


Hola Pablo,

Pablo Brunet wrote:
> buenisimo se me estan disipando muchas dudas, pero desde ayer es que 
> busco informacion en muchos manuales y no logro entendes que es 
> exactamente lo que hace o significa esto:
> fread(&r,sizeof(r),1,pablo);
> 
> se que el 1er parametro es la direccion de la variable r en memoria,
> el 2do el tamaño de la variable, no logro entender ese
> funcionamiento. no se si me explico.
> 

El prototipo es:

size_t fread( void *puntero, size_t tamaño, size_t nRegistros, FILE 
*fichero );

'tamaño' es el tamaño en bytes que ocupa cada elemento apuntado por 
'puntero'. El tercer parámetro, 'nRegistros', indica cuántos elementos 
hay en el array de 'puntero'. Por ejemplo,

int lista[10];

fread( lista, sizeof(int), 10, fp );

Al final, el segundo y tercer parámetros serán multiplicados para 
conseguir el tamaño total a leer y guardar en 'lista'.


Deberías consultar la referencia de ANSI C en nuestra página. El enlace 
para las funciones de <cstdio> es: 
http://c.conclase.net/librerias/libreria.php?lib=stdio  Si te interesa 
el tema de ficheros, consulta nuestro curso acerca del Manejo de 
Archivos en C/C++. El enlace es: http://c.conclase.net/ficheros/index.php

> y por que apareec dos veces?
> 

Si te refieres al programa que nos diste en mensajes anteriores, 
entonces la razón es que tenemos que asegurarnos que no estemos al final 
del fichero ejecutando 'feof()'. Tu programa va leyendo cada entero y 
mostrándolo en cada iteración.


Espero haber aclarado las dudas.

Steven





Más información sobre la lista de distribución Cconclase