关于fseek函数的位移!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/01 10:02:30
fseek(文件指针,位移量,起始点)如果当我的起始点是文件末尾! 那么位移量是2 此时指针是指那里呢? 文件末尾还有东西吗?
起始点时文件开始位置 位移是负数 那么 文件开始前面还有东西吗?

还有在网上看到

"fseek最后一个参数最好不要直接指定一个数值,比如1,
要使用SEEK_CUR,SEEK_END,SEEK_SET
第二个参数表示相对于第三个参数的偏移,整数表示正向偏移,负数表示负向偏移,比如
fseek(fp,-size,SEEK_CUR);
从当前位置向文件后方(比如文件有123三个数字,那么2在三的后方,3在2的前方)

为什么2在3后面呢
不是123吗? 2为什么不是在3前面 前后究竟是怎样算阿??

一般读文件偏移的时候需要制定一个相对位置,也就是SEEK_CUR,SEEK_END,SEEK_SET ,至于SEEK_SET "前面"是否有数据,SEEK_END后面是否还有"数据",答案是否定的

至于说123的前后问题,估计是你们老师和你们嚼字眼了,大学老师都那个样,喜欢搞玄乎的,我以前大学老师也是这样
具体来说是这样,文件是一个流,文件中的123顺序,你在读写的时候是先读1,再读2和3,也就是说有一种逻辑上的顺序,如果把整个文件看做一条马路,你会先遇到1,再遇到2和3,那么显然,2在3的后面(因为你遇到3的时候,2已经在你身后了)

一句话:读过的就是后(面的),还没读到的就是前(面的)。
123。1->2->3.

1.文件指针可以移动到当前文件末尾的后面,但不能移动到开头的前面;当把指针移动到文件末尾后面时,若关闭文件则文件大小会自动增长到文件指针所指的大小,用这种方法可以很容易创建一个很大的文件,当然新增加的文件内容是随机的。
2.第二个参数的正负表示向前移动还是向后移动,参数为正则向后移动,为负则向前移动,所相对的起始位置由第三个参数指定,这里的前后需要有个方向,文件操作规定文件头在前,文件尾在后,向文件头方向移动表示向前移动,反之则称为向后移动。你所说的文件中如果有123三个字符,那么1在前,3在后,2确实在3的前面,而不是后面。