C-Funktion, die Zeilen in einer Datei zählt

Wenn ich versuche, mein Programm auszuführen, wird die falsche Anzahl von Zeilen gedruckt.

LINES: 0

Dies ist die Ausgabe, obwohl meine TXT-Datei fünf Zeilen enthält

Hier ist mein Programm:

#include<stdio.h>
#include<stdlib.h>

int countlines(char *filename);

void main(int argc, char *argv[])
{
  printf("LINES: %d\n",countlines(argv[1]));         
}


int countlines(char *filename)
{
  // count the number of lines in the file called filename                                    
  FILE *fp = fopen(filename,"r");
  int ch=0;
  int lines=0;

  if (fp == NULL);
  return 0;

  lines++;
  while ((ch = fgetc(fp)) != EOF)
    {
      if (ch == '\n')
    lines++;
    }
  fclose(fp);
  return lines;
}

Ich bin sicher, dass es ein einfacher Fehler ist, aber ich bin neu in der Programmierung. Jede Hilfe wäre sehr dankbar.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage