C语言中如何读取文件里的行数?

Python023

C语言中如何读取文件里的行数?,第1张

#include<stdio.h>int main(){char temp[255] int i=0 FILE *fp=NULL if((fp=fopen("file.txt","r"))==NULL) { printf("打开失败!\n") return 1 } while(fscanf(fp,"%s",temp)) i++printf("文件行数为:%d\n",i)return 0}

统计行数可以通过统计换行符\n来实现。不过需要注意的是,有些文件最后一行并不存在换行符,所以代码中需要对此作处理。

可以在达到文件结尾后,判断前一个字符,如果不是换行符,那么应补加最后一行统计。

代码如下:

假定输入文件为in.txt,该文件存在且可读。

#include <stdio.h>

int main()

{

    FILE * fp = NULL //文件指针。

    int c, lc=0 //c为文件当前字符,lc为上一个字符,供结尾判断用。

    int line = 0 //行数统计

    fp = fopen("in.txt", "r")//以只读方式打开文件。

    while((c = fgetc(fp)) != EOF) //逐个读入字符直到文件结尾

    {

        if(c == '\n') line ++ //统计行数。

        lc = c //保存上一字符。

    }

    fclose(fp) //关闭文件

    if(lc != '\n') line ++//处理末行

    

    printf("文件共有%d行。\n", line)

    

    return 0

}

样例输入输出:

如in.txt有如下内容:

test line1

test line2

则会输出:

文件共有2行。