Vous devez vous connecter pour exécuter votre code.
fnlines — Compter les lignes (É 5.4)
É 5.4 — Écrivez la fonction fnlines qui compte le nombre de lignes d'un fichier texte. Gérez le cas où la dernière ligne n'est pas terminée par \n.
#include <stdio.h>
long fnlines(const char *filename) {
FILE *f = fopen(filename, "r");
if (f == NULL) return -1;
long n = 0;
int c, last = 0;
while ((c = fgetc(f)) != EOF) {
if (c == '\n') n++;
last = c;
}
// Si la dernière ligne n'a pas de \n, on la compte quand même
if (last != '\n' && last != 0) n++;
fclose(f);
return n;
}
int main(int argc, char *argv[]) {
if (argc < 2) { printf("-1\n"); return 1; }
printf("%ld\n", fnlines(argv[1]));
return 0;
}