Oct 242017
 
Artículo Lenguaje C

Para leer en C un fichero de texto ‘fichero.txt’ y procesarlo línea a línea, podemos escribir un programa “lee_fichero.c” conteniendo el siguiente código:

A continuación, compilamos el programa:

Y por último lo ejecutamos.

Si el fichero de texto a leer “fichero.txt” contiene las líneas:

al ejecutar el script desde la línea de comandos, obtendremos lo siguiente:

NOTAS

Carácter de fin de línea

Como podemos ver en la salida generada por el programa de ejemplo, cada línea leída incluye el carácter de fin de línea ‘\n’. Si deseamos eliminarlo, podemos simplemente añadir dentro del bucle las sentencias:

Tamaño del buffer de lectura.

En el código de ejemplo, para leer las líneas, hemos creado un buffer de 1024 bytes con la sentencia “char linea[1024];”. En la llamada a fgets, le pasamos como segundo argumento el tamaño del buffer.

Esto nos permite leer líneas de hasta 1022 (1024-2) caracteres, ya que es necesario un byte adicional para almacenar el carácter de fin de línea (‘\n’), y otro para el caracter nulo (0) que finaliza la cadena de texto.

Si el fichero a leer contiene líneas de mayor tamaño, deberemos dimensionar adecuadamente el buffer.

Podemos añadir al código una condición para comprobar si se da el caso de que una línea del fichero leído es mayor que el tamaño del buffer:

 Publicado por en 2:27 pm

 Deja un comentario

(requerido)

(requerido)