
La información se pierde tan pronto como finaliza un programa. Si guardamos los datos en un archivo, permanecerá aunque el programa falle. Si necesitamos insertar muchos datos, tomaría más tiempo. Pero si tenemos un archivo que contiene todo el contenido, lo recuperaríamos rápidamente con algunas funciones de C. Transferimos el archivo directamente de un dispositivo a otro sin ninguna modificación.
Hay dos tipos de archivos: archivos de texto y archivos binarios. Los archivos de texto son aquellos que tienen la extensión .txt. Estos archivos son fáciles de crear. Cuando accedemos a estos archivos, obtenemos un texto sin formato para toda la información. Los datos se pueden cambiar o eliminar fácilmente. La extensión .bin denota un archivo binario. En lugar de almacenar información en texto sin formato, lo hacen en números binarios (0 y 1).
Analicemos en detalle los diferentes enfoques para leer el contenido de un archivo.
Usando la función fseek() para leer la entrada del archivo
Si tenemos una gran cantidad de entradas en un archivo y queremos recuperarlas individualmente en una posición específica, necesitamos iterar todas las entradas de antemano. Consumiría una cantidad significativa de memoria y tiempo de procesamiento. A través de la función fseek(), podemos obtener la información que necesitamos de manera más eficiente.
#Contiene
estructura thrnumber
{
interno numero 1, Número 2, numero3;
};
interno principalmente()
{
interno norte;
estructura thrNumber número;
EXPEDIENTE *ptr;
Cuando ((ptr = abierto(«Archivo_1.txt», «r»)) == CERO){
presión(«No se puede abrir el archivo»);
salida(1);
}
buscar(ptr, –tamaño de(estructura thrnumber), SEEK_END);
hacia(norte = 1; norte < 5; ++norte)
{
miedo(&Número, tamaño de(estructura thrnumber), 1, ptr);
presión(«n1: %d\tn2: %d\tn3: %d\norte«, Número.numero 1, Número.Número 2, Número.numero3);
buscar(ptr, –2*tamaño de(estructura thrnumber), SEEK_CUR);
}
concluir(ptr);
devolver ;
}
Aquí iniciaremos el programa al #incluir los archivos de encabezado necesarios
Además, construimos un puntero de archivo. Luego se aplica la declaración «If». Aquí establecemos el puntero del archivo igual a la función fopen(). La función fopen() se utiliza para abrir el archivo especificado. Con la ayuda de la declaración if, verificamos si la ruta especificada del archivo es igual a ‘NULL’. La instrucción printf imprime el texto ‘No se puede abrir el archivo’. De lo contrario, el programa se termina.
También se utiliza el método fseek(). Contiene tres parámetros. El primer argumento contiene el puntero del archivo. El segundo argumento muestra la ubicación del archivo especificado. Asimismo, el último argumento especifica el punto en el que comienza la desviación. Además, aplicamos un bucle. Declaramos la variable y establecemos la condición en el número, y finalmente incrementamos el valor de un número.
Para obtener el texto del archivo especificado, usamos la función fread(). Ahora necesitamos imprimir el resultado, por lo que se usa la función printf(). Nuevamente aplicamos la función fseek(). Al final, para cerrar el archivo especificado, usamos la función fclose().
Usando la función fgetc() para leer la entrada de un archivo
La función fgetc() recupera los caracteres señalados por el indicador de función. Proporciona la palabra recibida del flujo y ajusta el punto de lectura a la siguiente palabra después de cada lectura válida. Sin embargo, si no hay datos para leer, este método calcula una variable EOF(-1).
#Contiene
#Contiene
interno principalmente()
{
EXPEDIENTE* ptr;
carbonizarse cr;
ptr = abierto(«datos.txt», «r»);
Cuando (CERO == ptr) {
presión(«No se puede abrir el archivo \norte«);
}
presión(«Los datos del archivo son \norte Nombre: Amna \norte Edad: 24 \norte Nombre: Sara \norte Edad: 16 \norte Nombre: Annela \norte Edad: 30 \norte«);
que hacer {
cr = fgetc(ptr);
presión(«%C», cr);
} durante (cr != fin de semana);
concluir(ptr);
devolver ;
}
Primero incluimos tres archivos de cabecera. La biblioteca estándar es el identificador del archivo de encabezado.
En el siguiente paso inicializamos la función main(). Aquí se construye un puntero a un archivo específico y declaramos una variable con un tipo de datos de caracteres. A continuación usamos la función fopen(). Este método toma dos argumentos: el primer parámetro muestra el nombre del archivo y el segundo parámetro muestra el modo del archivo. Aquí, el método fopen() abre el archivo definido en modo de lectura. Usamos la declaración if para verificar si el puntero del archivo es igual a ‘NULL’ o no. Si el puntero del archivo es igual a ‘NULL’, el programa especificado finaliza. De lo contrario, usamos la función printf() para imprimir el contenido del archivo.
Además, mediante el uso de un bucle do-while, revisamos cada carácter de uno en uno. Aquí declaramos la función fgetc() para obtener los datos del archivo definido. Ahora aplicamos el bucle while para verificar si el carácter especificado no estaría al final de la línea; si es así, deja de leer. Se utiliza el método fclose(), que cierra el archivo.
Usando la función fgetc(), el código anterior lee todos los datos del archivo, un solo carácter a la vez. Se usaría un bucle do-while para recuperar caracteres a menos que estén al final del archivo. Genera el carácter EOF (-1) cada vez que llega a la conclusión.
Conclusión
En este artículo, analizamos diferentes formas de leer los datos del archivo. Aquí aplicamos los métodos fgetc(), fread() y fseek() para recuperar contenido usando ejemplos específicos. Todas estas son funciones predefinidas del lenguaje C. Para leer cada palabra de un archivo, usamos el método fgetc(). Para extraer datos configurados a un archivo, usamos el método fseek().