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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Hola Me gustaria saber si puedes ayudarme con mi problema de programacion..Cree un programa en python para comparar dos numeros , pero el ciclo for es muy lento.Y volver a programar en C .. me cuesta mucho .Te lo envio haber si puedes hacer algo ...Por supuesto te pagare o te invitare un par de chupitos.
    y=int(input("introduce numero A:"))
    j=int(input("introduce numero B:"))

    for i in range(1,1200000 ):
    file = open("XXpi.txt")
    nlinea = [y+i]

    for pos, l_num in enumerate(file):
    if pos in nlinea:

    a=(l_num[:3])
    b=(l_num[6:])
    file = open("XXpi.txt")
    nlinea = [i+j]

    for pos, l_num in enumerate(file):
    if pos in nlinea:
    d=(l_num[:3])
    e=(l_num[6:])

    if (a,b)==(d,e):
    print(nlinea)

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 semanas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.