En este artículo hablaremos sobre el funcionamiento de las funciones de archivos en C, la apertura de un archivo, el cierre de un archivo, las funciones getw y putw, las funciones fprintf y fscanf, el acceso aleatorio a archivos y la función fseek.
Funciones para el manejo de ficheros:
Función | Operación |
fopen() | Crear un nuevo archivo Abrir un archivo existente |
fclose() | Cerrar un archivo en uso |
fgetc() | Lee un carácter de un fichero |
fgets() | Lee una cadena de un archivo |
putc() | Escribir un carácter en un fichero |
fprintf() | Escribe un conjunto de valores de datos en un archivo |
fscanf() | Lee el archivo a un tamaño definido |
getw() | Lee un número entero de un fichero |
putw() | Escribir un entero en el fichero |
fseek() | Señala una posición definida en un archivo |
ftell() | Muestra la posición actual en bytes |
rebobinar() | Señala el principio del archivo |
fopen()
Para crear o abrir un archivo o para leer y/o escribir:
FILE *arq; arq = fopen("nome-do-arquivo","modo");
En«modo» utilizamos un parámetro que define qué operaciones se realizarán sobre el fichero, como lectura y/o escritura:
A – Abierto a la lectura.
R+ – Lectura y escritura.
W – Escritura, si ya existe un archivo se suscribirá, de lo contrario se creará uno nuevo.
W+ – Escritura y lectura, si ya existe un fichero se suscribirá, en caso contrario se creará uno nuevo.
RB – Lectura de un archivo binario.
RB+ – Lectura y escritura en un archivo binario.
WB – Escribir en un archivo binario, si ya existe un archivo se suscribirá, de lo contrario se creará uno nuevo.
WB+ – Escritura y lectura, si ya existe un fichero se suscribirá, en caso contrario se creará uno nuevo.
fclose()
Un fichero abierto con la función fopen( ) puede cerrarse con la función fclose():
FILE *arq; arq = fopen("masterdaweb.txt", "r"); fclose(arq); // Fecha o arquivo
fgetc()
La función fgetc( ) lee un único carácter de un fichero.
fgetc(arq);
El ejemplo anterior lee un carácter del archivo arq.
fgets()
La función fgets( ) lee hasta el final de una línea si la longitud definida en el parámetro de la función es suficiente, en caso contrario lee la longitud definida.
char nome[100]; fgets(nome, sizeof(nome), arq);
El ejemplo anterior almacena lo leído en la variable nombre.
putc()
Escribe un carácter en el fichero.
putc ('a', arq);
El ejemplo anterior escribe la letra«a» en el archivo arq.
getw() y putw()
Son similares a las funciones GETC y PUTC y se utilizan para leer y escribir valores enteros:
FILE *arq; arq = fopen("masterdaweb.txt","w+"); putw(inteiro,arq); getw(arq);
fprintf() y fscanf()
Las funciones fprintf y fscanf son idénticas a las funciones printf y scanf, con la diferencia de que se utilizan en ficheros.
fprintf(arq,%s%d%f”,nome,idade,7.5); fscanf(arq,"%s%d”,nome,&idade");
fseek()
Señala una posición contada en bytes a partir de una posición dada:
fseek(arq, 50, SEEK_SET);
El ejemplo anterior apunta a la posición de 50 bytes contados desde SEEK_SET (el inicio del archivo).
SEEK_SET – Inicio del archivo.
SEEK_CUR – Posición actual.
SEEK_END – Fin del archivo.
ftell()
Muestra la posición actual en el archivo, contada desde el inicio del archivo.
ftell(arq);
rebobinar()
Señala el principio del archivo.
rewind(arq);