Operaciones de archivos en lenguaje C fwrite y fread
fread es una función en el estándar del lenguaje C. Lee datos de una secuencia de archivos, leyendo hasta contar elementos, cada byte de tamaño de elemento. Si la llamada tiene éxito, devuelve el número real de elementos leídos. Si no tiene éxito o se llega al final del archivo, devuelve 0. .
fwrite es una función de la biblioteca estándar del lenguaje C, que escribe un bloque de datos en un archivo. El ejemplo es el siguiente: //Leer un archivo completo
#include?
#include?
int ? main()
{
FILE*?pFile;//Puntero de archivo
long?lSize;//?para la longitud del archivo
char*?buffer;?//?Puntero del búfer de archivo
size_t?result;?//?El valor de retorno es la cantidad de contenido leído
pFile?=?fopen ("miarchivo.bin"?,?"rb");
if?(pFile?==?NULL)?{fputs("Archivo?error",?stderr);?exit(1) ;}//?Si el archivo es incorrecto, salga 1
//?Obtenga el tamaño del archivo
fseek(pFile?,?0?,?SEEK_END);?// ?Mover el puntero Ir al final del archivo
lSize?=?ftell(pFile);?//?Obtener la longitud del archivo
rewind(pFile);?// ?La función rewind() cambia el puntero del archivo. Mover al principio especificado por la secuencia, borrando errores relacionados con la secuencia y indicadores EOF
//Asignar un búfer de memoria para todo el archivo
buffer?= ?(char*)?malloc(sizeof(char)?*?lSize);?//?Asigne el búfer de acuerdo con el ?lSize anterior
if?(buffer?==?NULL )?{ fputs("Memoria?error",?stderr);?exit(2);}?//?Error de asignación de memoria, salida 2
//?El archivo se copia al búfer
resultado?=?fread(buffer,?1,?lSize,?pFile);?//?El valor de retorno es la cantidad de contenido leído
if?(resultado?! =?lSize)? {fputs("Reading?error",?stderr);?exit(3);}?//?Si el valor devuelto no coincide con el tamaño del archivo, lea el error
/ /?terminar?//?Terminar archivo
fclose(pFile);
free(buffer);
return?0;
}
Ejemplos de uso integral.
#include?
int?main()
{
FILE*?pFile;
float?buffer []?=?{?2.0?,?3.0?,?8.0?};
pFile?=?fopen("miarchivo.bin"?,?"wb");?//?Open Operación de escritura de archivo
fwrite(buffer?,?1?,?sizeof(buffer)?,?pFile);?//?Escribe la matriz de punto flotante en el archivo?myfile.bin
fclose(pFile);?/?//?Cerrar el archivo
float?read[3];
pFile?=?fopen("myfile.bin"?,? "rb ");?//?Reabrir la operación de lectura de archivos
fread(read?,?1?,?sizeof(read)?,?pFile);?//?Leer datos del archivo
p>printf("%f\t%f\t%f\n",?read[0],?read[1],?read[2]);
fclose( pFile);?/?/?Cerrar el archivo
return?0;
}