求教一个关于 ftell()函数返回值的问题,敬请高人指点。
步骤:
1.自己先新建一个文本文档,命名为:Stu_list.txt. 内容为:abc
如下图所示:
![]()
2.编写完整程序,如下:
#inlcude <stdlib.h>
#include <stdio.h>
void main()
{
FILE *fp;
long len;
char *buf;
fp=fopen("stu_list.txt","rb");
fseek(fp,0,SEEK_END); //使stu_list.txt的文件指针移动到该文件的末尾。
len=ftell(fp); //使用ftell()函数,求得当前指针相对于stu_list.txt文件开头的位移量,赋值给len.
printf("%ld\n",len);
}
3.编译,运行。
4.得到的结果是: Len的值是5,而不是3.
我的问题是:既然ftell()函数的返回值是该文件指针在当前的读写位置偏离文件头部的字节数,stu_list的内容只有abc这三个字符,即三个字节。那么,为什么len的值是5呢?
敬请各位高人给予精确的指点,小弟在这里先谢谢各位了。
环境:
1.所用编译器:Visual C++ 6.0
2.操作系统:Windows XP 32位
1.自己先新建一个文本文档,命名为:Stu_list.txt. 内容为:abc
如下图所示:
2.编写完整程序,如下:
#inlcude <stdlib.h>
#include <stdio.h>
void main()
{
FILE *fp;
long len;
char *buf;
fp=fopen("stu_list.txt","rb");
fseek(fp,0,SEEK_END); //使stu_list.txt的文件指针移动到该文件的末尾。
len=ftell(fp); //使用ftell()函数,求得当前指针相对于stu_list.txt文件开头的位移量,赋值给len.
printf("%ld\n",len);
}
3.编译,运行。
4.得到的结果是: Len的值是5,而不是3.
我的问题是:既然ftell()函数的返回值是该文件指针在当前的读写位置偏离文件头部的字节数,stu_list的内容只有abc这三个字符,即三个字节。那么,为什么len的值是5呢?
敬请各位高人给予精确的指点,小弟在这里先谢谢各位了。
环境:
1.所用编译器:Visual C++ 6.0
2.操作系统:Windows XP 32位
...全文
相关推荐
详解C语言中fseek函数和ftell函数的使用方法
fseek函数: int fseek(FILE * _File, long _Offset, int _Origin); 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败则不改变stream指向的位置,函数返回一个非0值。 超出文件末尾位置,还是返回0。往回偏移超出首位置,还是返回0,小心使用。 第一个参数stream为文件指针。 第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移。 第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CU
PHP移动文件指针ftell()、fseek()、rewind()函数总结
主要介绍了PHP移动文件指针ftell()、fseek()、rewind()函数总结,本文先是对它们的作用做了讲解,然后给出具体使用例子,需要的朋友可以参考下
ftell用法详细介绍
文件操作的ftell用法介绍,C语言开发技术。值得注意的是,linux文件操作并没有相应的ltell
file@libc.zip_file operations c_ftell
C语言文件操作函数集(功能描述、示例代码),如fopen/fclose/fileno/ftell/fflush等。
C语言中lseek()函数和fseek()函数的使用详解
主要介绍了C语言中lseek()函数和fseek()函数的使用详解,是C语言入门学习中的基础知识,需要的朋友可以参考下


