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
- Conserva el salto de línea, así que quítalo tú.
- Un búfer lleno sin salto de línea significa que la línea era más larga.
- Devuelve NULL al final del archivo o ante un error.
Palabras clave y builtins usados aquí
FILENULLcharifintreturnsize_tsizeofwhile
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.
Paso 2 de 4 en Abrir y leer; paso 2 de 12 en Archivos y E/S.