2016 - 2024

感恩一路有你

c语言读取大文件 如何用C语言获取文件的大小?

浏览量:1380 时间:2021-03-11 05:48:27 作者:admin

如何用C语言获取文件的大小?

/*解决方案:以只读模式打开文件,然后在文件末尾找到文件指针,并使用fTell函数返回指针在文件中的相对位置。*/

#包括“标准”。H“main(){file*FP/*定义文件指针*/long CNT/*定义变量CNT以存储文件大小数据*/FP=fopen(”C:1)。TXT“,”R“/>*请在此处填写测试文件的地址,并以只读模式打开文件*/if(FP==null)/*如果打开的文件不存在,则退出*/{exit(0)Printf(”file open failed!“)}fseek(fp,0L,SEEKEnd)/*使用fseek函数将指针定位到文件的末尾*/CNT=fTell(fp)/*使用fTell函数返回指针相对于文件开头的位置,并计算*/printf(以字节为单位)(”文件占用的字节数为%LDn”,CNT)/*以输出*/}

我也想知道这个问题。目前,当我编写自己的程序来处理CSV格式的文档时,我使用fgets逐行读取,读取一行,处理一行,然后读取下一行。处理的文件从几兆字节到十几兆字节不等,速度可以接受,但一半以上的时间都花在读写上。因为fgets有自己的缓冲区,所以似乎没有改进的余地。我试图增加缓冲,但没有明显的效果。

如何用C语言获取文件的大小?

#包括和限制。H>

int hangshu(char file[]//输入项目目录中的文件名,或其他目录中的绝对路径名,例如:C:1。TXT

{

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:1)。TXT “)//这是您要打开的文件。这是C盘根目录下的文件

int HST=hangshu(”1)。TXT“/”项目目录。

Printf(“number of lines:Dn”,HS)

Printf(“number of lines:Dn”,HS)]}

以上是用C编写的,不是用C编写的

运行时可以删除中文注释。

完全可操作。我已经测试过了。

c语言读取大文件 c语言文件读写操作 c语言判断文件是否存在

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。