Hoy vamos a ver cómo leer un archivo de texto o archivo de texto plano línea por línea usando el lenguaje de programación C.
Vamos a usar las funciones fopen
, fgets
, strtok
, fclose
, entre otras. Todo esto para poder leer cada línea del archivo usando ANSI C.
Leer líneas de archivo
Primero abrimos el archivo con fopen
, indicando el nombre del mismo así como el modo de apertura. También declaramos un búfer o línea en donde vamos a ir almacenando cada línea del archivo.
El búfer es importante, y su longitud debe ser declarada de tal manera que ninguna cadena tenga una longitud mayor.
En este caso usamos strtok
para remover el salto de línea de la cadena, pues la misma viene del archivo con un \n
.
#include <stdio.h>
#include <string.h>
#define NOMBRE_ARCHIVO "archivo.txt"
#define LONGITUD_MAXIMA_CADENA 1000
int main(void)
{
FILE *archivo = fopen(NOMBRE_ARCHIVO, "r"); // Modo lectura
char bufer[LONGITUD_MAXIMA_CADENA]; // Aquí vamos a ir almacenando cada línea
while (fgets(bufer, LONGITUD_MAXIMA_CADENA, archivo))
{
// Aquí, justo ahora, tenemos ya la línea. Le vamos a remover el salto
strtok(bufer, "\n");
// La imprimimos, pero realmente podríamos hacer cualquier otra cosa
printf("La línea es: '%s'\n", bufer);
}
return 0;
}
Al invocar a fgets
vamos a tener el contenido de la línea en el búfer que indicamos. Ahora ya tenemos la cadena limpia. Podemos imprimirla, agregarla a un arreglo, escribirla en otro archivo, etcétera.
También puedes leer más sobre C en mi blog.