当前位置:首页 » 编程语言 » c语言ftell函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言ftell函数

发布时间: 2023-05-27 16:25:52

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

C语言中获取文件大小方式基纳有很多,在不使用任何系统命令,仅使用C自身库函数情况下,常用方式有两种:

一、获取文件系统属性,读取文件大小。

在C语言库函数中有stat函数,可以获取文件的基本信息,其中就有文件大小。

#include<sys/stat.h>//包含头文件。
intfile_size(char*filename)//获取文件名为filename的文件大小。
{
structstatstatbuf;
intret;
ret=stat(filename,&statbuf);//调用stat函数
if(ret!=0)return-1;//获取失败。
returnstatbuf.st_size;//返回文件大小。
}

二、通过C语言文件操作,获取文件大小。

以fopen打开的文件,通过fseek可以定位到文件尾,这时使用ftell函数,返回的文件指针偏移值,就是文件的实际大小。

代码如下:

#include<stdio.h>//包含头文件。碧链
intfile_size(char*filename)//获取文件名为filename的文件大小。
{
FILE*fp=fopen(filename,"rb");//打开文件。
intsize;
if(fp==NULL)//打开文件失败
return-1;
fseek(fp,0,SEEK_END);//定位文件指针到文件尾。
size=ftell(fp);//获取文件指针偏移量,即文件大小。
fclose(fp);//关闭文件。
returnsize;
}

三、注意事项:

第一种方式为直接读取文件信息,无需悔锋孙打开文件,所以更高效。

四、测试代码:

以上接口函数,均可以用如下主函数测试:

#include<stdio.h>
intmain()
{
chars[100];
intsize;
scanf("%s",s);//输入文件名
size=file_size(s);//获取文件大小。
if(size==-1)printf("无法获取文件大小,可能文件并不存在或不可读 ");
elseprintf("文件大小为%d ",size);
return0;
}

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

/*解题思路基衫:以只读方式打开某一文件,然后将文件指针定位在文件结尾的位置,利用搏咐腔ftell函数返回指针的在文件中的相对位简察置即可。
*/

#include"stdio.h"

main()
{FILE*fp;/*定义文件指针*/
longcnt;/*定义变量cnt用来存储文件大小数据*/
fp=fopen("c:\1.txt","r");/*此处请填写测试文件的地址,并以只读("r")方式打开文件*/
if(fp==NULL)/*如果打开的文件不存在,则退出*/
{exit(0);
printf("文件打开失败!");
}
fseek(fp,0L,SEEK_END);/*利用fseek函数将指针定位在文件结尾的位置*/
cnt=ftell(fp);/*利用ftell函数返回指针相对于文件开头的位置,以字节计算*/
printf("文件所占的字节数为%ld个 ",cnt);/*进行输出*/
}

C. C语言 第十六题C和D是啥意思

C——ftell函数返回相对于文件开头的指针位置,所以用fseek(fp,-ftell(fp),1);就可以把文件指针移到文件开头位置,其中1表示从当前位置开始,-表示向前移。D——fseek(fp,0,2);中2表示从文件最后开始,0表示移动0个字符,所以移不到开头去。所以D是错误的,选D。

D. C语言 文件定位

C语言文件定位,主要依靠fseek函数实现,具体代码如下,
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp=NULL;
long len=0L;//文件长度
fp=fopen("test.dat","rb");//假设当前目录有test.dat文件
if(!fp)//检查文件打开是否正常
{
printf("文件打开失败,程序退出!\n");
exit(1);
}
fseek(fp,0L,SEEK_END);//文件定位到文件末尾
len=ftell(fp);//获取文件长度
if(len/1024>0)
printf("文件大小为%ldKB!\n",len/1024);
else
printf("文件大小为%ldB!\n",len);
rewind(fp);//文件指针移到开始处
if(fp)//关闭文件
{
fclose(fp);
fp=NULL;
}
return 0;
}

int fseek( FILE *stream, long offset, int origin );函数fseek()为文件指针stream设置位置数据。origin的值应该是下列值之一,
SEEK_SET(从文件的开始处开始搜索)
SEEK_CUR(从当前位置开始搜索)
SEEK_END(从文件的结束处开始搜索)
fseek()成功时返回0,失败时返回非零。