文件中有一个读写位置指针指向当前的读写位置。如果顺序读写一个文件,则每次读写1个(或1组)数据后,系统自动将位置指针移动到下一个读写位置上。
如果想改变系统的这种读写规律,强制性地移动到希望的位置上,可使用有关文件定位的函数。
1.位置指针复位函数rewind()
(1)用法:int rewind(文件指针);
(2)功能:使文件的位置指针返回到文件头。
2.随机读写与fseek()函数
对于流式文件,既可以顺序读写,也可以随机读写,关键在于控制文件的位置指针。
所谓顺序读写,是指读写完当前数据后,系统自动将文件的位置指针移动到下一个读写位置上。
所谓随机读写,是指读写完当前数据后,可以通过调用fseek()函数,将位置指针移动到文件中任何一个地方。
(1)用法:int fseek(文件指针,位移量,参照点);
(2)功能:将指定文件的位置指针,从参照点开始,移到指定的字节数。(www.xing528.com)
① 参照点:用0(文件头)、1(当前位置)和2(文件尾)表示。
在ANSI C标准中,还规定了下面的名字:
SEEK_SET——文件头,SEEK_CUR——当前位置,SEEK_END——文件尾
② 位移量:以参照点为起点,向前(当位移量>0时)或向后(当位移量<0时)移动的字节数。在ANSI C标准中,要求位移量为long int型数据。
fseek()函数一般用于二进制文件。
3.返回文件当前位置的函数ftell()
由于文件的位置指针可以任意移动,也经常移动,因而往往容易迷失当前位置,ftell()就可以解决这个问题。
(1)用法:long ftell(文件指针);
(2)功能:返回文件位置指针的当前位置(用相对于文件头的位移量表示)。如果返回值为-1L,则表明调用出错。
例如:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。