c语言读取大文件 如何用C语言获取文件的大小?
如何用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语言判断文件是否存在
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。