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

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

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

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

rewind(fp);

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

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

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

ifstream

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

打开文件是

infileopen();

---------

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

这样写

ifstream

infile(file,ios::binary);

infileclose();

ifstream

infile2(file,ios::binary);

//重新打开

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

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

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

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

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

明显效率太低了。。

完全可以读取一行啊

使用getline

例如

ifstream

infile(file,ios::binary);

string

str;

while(getline(infile,str))

{

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

}

#include <stdioh>

int hangshu(char file[])//输入工程目录下的文件名,或者其他目录下绝对路径名例如:c:\\1txt;

{

char c;

int h=0;

FILE fp;

fp=fopen(file,"r");

if(fp==NULL)

return -1;//表示文件打开错误

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

{

if(c=='\n')

h++;

else

{

c=fgetc(fp);//这是处理最后一行可能没有换行标志,但是确文件结束。

if(c==EOF)

{

h++;

break;

}

}

}

return h;

}

int main()

{

int hs=hangshu("c:\\1txt");//这里说明你要打开的文件。这个是c盘根目录下文件

int hst=hangshu("1txt");//工程目录下的文件。

printf("行数:%d\n",hs);

printf("行数:%d\n",hs);

}

如上是用c编写的,不是c++

运行的时候可以把中文注释去掉。

完全可以运行的,我已经测试过了。

涉及到java中读写文件的IO *** 作。

获取一个文本文件的行数较为方便的方法,是通过BufferedReader类的readLine()方法,间接的统计行数。

源代码:

public

static

int

getTextLines()

throws

IOException

{

String

path

=

"c:\\jobtxt"

;//

定义文件路径

FileReader

fr

=

new

FileReader(path);

//这里定义一个字符流的输入流的节点流,用于读取文件(一个字符一个字符的读取)

BufferedReader

br

=

new

BufferedReader(fr);

//

在定义好的流基础上套接一个处理流,用于更加效率的读取文件(一行一行的读取)

int

x

=

0;

//

用于统计行数,从0开始

while(brreadLine()

!=

null)

{

//

readLine()方法是按行读的,返回值是这行的内容

x++;

//

每读一行,则变量x累加1

}

return

x;

//返回总的行数

}

以上就是关于C语言中如何读取文件里的行数全部的内容,包括:C语言中如何读取文件里的行数、用C语言读出文件行数、java中怎么获得一个文本文件的行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10038128.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存