用c语言怎么读取txt文件中的行数

Python010

用c语言怎么读取txt文件中的行数,第1张

读取文件行数, 可以逐个字符读取文件,到文件尾,统计\n的个数

参考代码如下

#include <stdio.h>

int main()

{

    int c

    FILE *fp

    int lines=0

    fp=fopen("in.txt", "rb")

    if(fp)

    {

        while((c=fgetc(fp)) != EOF)

            if(c=='\n') lines++

        printf("%d\n",lines)

        fclose(fp)

    }

    return 0

}

也可以通过fgets函数,每次读取一行,到文件尾,然后计算读取的次数

#include <stdio.h>

#include <string.h>

int main()

{

    char s[100]

    FILE *fp

    int lines=0

    fp=fopen("in.txt", "r")

    if(fp)

    {

        while((fgets(s,100,fp)) != NULL)

            if(s[strlen(s)-1]=='\n') lines++

        printf("%d\n",lines)

        fclose(fp)

    }

    return 0

}

正常情况不用重新打开。。

请问是如何读取文本的行数的??

rewind(fp)

可以将指针回到起始位置。。

------------------------------

infile不用换名字啊,但是你那个写了有点问题,

ifstream

infile(file,ios::binary)其实不能叫打开文件

打开文件是

infile.open(*****)

---------

假设就是要你那样写,那就换个名字,

这样写

ifstream

infile(file,ios::binary)

*******

infile.close()

ifstream

infile2(file,ios::binary)

//重新打开

-----------------------------

还有一个问题,为何一定要知道行数呢??

就算要知道行数,你是如何读取文件统计\n的?

难道用的是fgetc,判断当前字符??

--------------

明显效率太低了。。

完全可以读取一行啊

使用getline

例如

ifstream

infile(file,ios::binary)

string

str

while(getline(infile,str))

{

//对str操作,就是当前行

}