Red de conocimiento informático - Computadora portátil - Operaciones de archivos en lenguaje C fwrite y fread

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;

}