/* 解题思路: 以只读方式打开某一文件,然后将文件指针定位在文件结尾的位置,利用ftell函数返回指针的在文件中的相对位置即可。
创新互联主营云龙网站建设的网络公司,主营网站建设方案,成都app软件开发,云龙h5微信小程序搭建,云龙网站营销推广欢迎云龙等地区企业咨询
*/
#include "stdio.h"
main()
{ FILE *fp; /*定义文件指针*/
long cnt; /*定义变量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个\n",cnt); /*进行输出*/
}
你需要使用fseek函数将文件指针指向最后:
fseek(fp, 0L, SEEK_END);
sz = ftell(fp);
其中sz就是文件的大小。
当你知道文件的大小后,就可以通过fseek重新定义到文件开始的位置:
fseek(fp, 0L, SEEK_SET);
或使用下面的函数定义的文件开始:
rewind(fp);
可以到秒秒学上看看相关的内容,上面的课程讲解得可以的。
c语言可以通过stat()函数获得文件属性,通过返回的文件属性,从中获取文件大小。
#include
sys/stat.h
可见以下结构体和函数
struct
stat
{
_dev_t
st_dev;
_ino_t
st_ino;
unsigned
short
st_mode;
short
st_nlink;
short
st_uid;
short
st_gid;
_dev_t
st_rdev;
_off_t
st_size;
//文件大小
time_t
st_atime;
time_t
st_mtime;
time_t
st_ctime;
};
stat(const
char
*,
struct
_stat
*);
//根据文件名得到文件属性
参考代码:
#include sys/stat.h
void main( )
{
struct stat buf ;
if ( stat( "test.txt", buf ) 0 )
{
perror( "stat" );
return ;
}
printf("file size:%d\n", buf.st_size );
}