搜索
查看: 785|回复: 4
打印 上一主题 下一主题

ftell函数问题

[复制链接]
跳转到指定楼层
楼主
发表于 2014-4-13 17:47:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
求助于高手
为什么ftell函数返回的文件大小不正确  
我在一台老电脑上用,返回的文件大小是正确的
在两台新电脑上用,一个0字节的空文件返回的是2280
unsigned long int getfilelen(char filename[]) //返回文件大小
{
FILE *fp;
    unsigned long fl;
    if ((fp=fopen(filename,"rt"))==NULL)         
printf("打开文件失败!");
    fseek(fp,0,SEEK_END);      //移动文件指针
    fl=ftell(fp);
    fclose(fp);
    return fl;
}

沙发
发表于 2014-4-13 18:20:51 | 只看该作者
本帖最后由 rosynirvana 于 2014-4-13 18:26 编辑

首先,标准中的fopen没有t这个参数
然后,fseek在非binary mode下的返回值没有明确(易于用户理解)的意义
最后, fseek(fp,0,SEEK_END);   这一句的行为是编译环境自己确定的,没法在运行前确定这一句会干什么
板凳
 楼主| 发表于 2014-4-13 18:52:15 | 只看该作者
fopen的参数改成rb也不行
地板
发表于 2014-4-13 18:55:51 | 只看该作者
ahgjg 发表于 2014-4-13 18:52
fopen的参数改成rb也不行

你要在什么环境下做什么事情?
5#
 楼主| 发表于 2014-4-13 21:22:01 | 只看该作者
win7 啊哈C
现在把代码放在别的函数中就行了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表