为什么C中的linecount没有工作?

Vel*_*ria 4 c line-count

我正在尝试阅读一个文本文件但在此之前我想知道我要阅读的元素数量.所以我需要计算文本文件的行数.到目前为止,我有这个:

int getLinecount (char *file) 
{
    int ch, count = 0;
    FILE *fp = fopen(file, "r");
    if(fp == NULL)
    {
        return -1;
    }
    while((ch = fgetc(fp)) != EOF)
    {
        if (ch == '\n'); 
        {
            count++;
        }
    }
    fclose(fp);
    return count;
}
Run Code Online (Sandbox Code Playgroud)

这很好用.我没有对文本文件做任何改变,但仍打印130,000,尽管文件只有10,000行.我在我的主要内容中唯一写的是:

linecount = getLinecount("...");
Run Code Online (Sandbox Code Playgroud)

我真的很好奇错误在哪里.此外,是否有更好的选择获得linecount?

md5*_*md5 10

;if陈述后有一个尾随分号.然后,始终执行块:

{
    count++;
}
Run Code Online (Sandbox Code Playgroud)