啊哈磊_编程从这里起步
标题:
ftell函数问题
[打印本页]
作者:
ahgjg
时间:
2014-4-13 17:47
标题:
ftell函数问题
求助于高手
为什么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;
}
作者:
rosynirvana
时间:
2014-4-13 18:20
本帖最后由 rosynirvana 于 2014-4-13 18:26 编辑
首先,标准中的fopen没有t这个参数
然后,fseek在非binary mode下的返回值没有明确(易于用户理解)的意义
最后, fseek(fp,0,SEEK_END); 这一句的行为是编译环境自己确定的,没法在运行前确定这一句会干什么
作者:
ahgjg
时间:
2014-4-13 18:52
fopen的参数改成rb也不行
作者:
rosynirvana
时间:
2014-4-13 18:55
ahgjg 发表于 2014-4-13 18:52
fopen的参数改成rb也不行
你要在什么环境下做什么事情?
作者:
ahgjg
时间:
2014-4-13 21:22
win7 啊哈C
现在把代码放在别的函数中就行了
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2