typestar

Leer líneas con fgets en C

fgets es el lector de líneas seguro: recibe un tamaño y siempre termina la cadena.

#include <stdio.h>
#include <string.h>

int count_lines(FILE *f) {
    char line[256];
    int lines = 0;

    while (fgets(line, (int) sizeof line, f) != NULL) {
        size_t n = strlen(line);
        if (n > 0 && line[n - 1] == '\n') {
            line[n - 1] = '\0';
        }
        lines++;
    }
    return lines;
}

Cómo funciona

  1. Conserva el salto de línea, así que quítalo tú.
  2. Un búfer lleno sin salto de línea significa que la línea era más larga.
  3. Devuelve NULL al final del archivo o ante un error.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
260
Tokens
93
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 59 segundos.

Escribe este fragmento

Paso 2 de 4 en Abrir y leer; paso 2 de 12 en Archivos y E/S.

← Anterior Siguiente →