----------------解决方案--------------------------------------------------------
不好意思,发错了
下面是你要的
//----------------------------------------------------------------------------
rewind() 接受一个 FILE 指针参数 作用是:回到文件开始处
//--------------------------------------------------------------------//
/-------------------------------------------------\
| 文件的起始点模式 |
|-------------------------------------------------|
| 模 式 偏移量的起始点 |
| SEEK_SRT 文件开始 |
| SEEK_CUR 当前位置 |
| SEEK_END 文件结尾 |
\-------------------------------------------------/
fseek() fseek() 接受3个参数,返回 int 值。
第一个参数是一个指向被搜索文件的 FILE 指针。因该已经使用 fopen()
打开了该文件。
第二个参数成为偏移量(offset),表示从起始点开始要移动的距离
这个参数必须是一个 long 类型的值,可以为正(前移)、负(后移),
也可以为零(保持不动)。
第三个参数是模式,用来标识起始点。在ANSI下,stdio.h 头文件制定了下
列模式敞亮:
模式 偏移量的起始点
SEEK_SET 文件开始
SEEK_CUR 当前位置
SEEK_END 文件结尾
以前实现中可能没有这些定义,而是用数字值0L、1L和2L分别代表
这些模式。(L 后缀标识 long 类型值)
函数允许您像对待数组那样对待一个文件,在 fopen() 打开的文件中直接移
动到任意字节处。
fseek(fp, 0L, SEEK_SET); // 找到文件的开始处
fseek(fp, 10L, SEEK_SET); // 找到文件的第11个字节
fseek(fp, 2L, SEEK_CUR); // 从文件的当前位置向前移动2个字节
fseek(fp, 0L, SEEK_END); // 到达文件结尾处
fseek(fp, -10L, SEEK_END); // 从文件结尾处退回10个字节
如果一切正常,fseek()的返回值为0。如果有错误出现,例如试图移动超
出文件范围,则fseek()的返回值为-1。
ftell() 函数以一个 long 类型值返回一个文件的当前位置。在ANSIC下,ftell()函数
在stdio.h头文件中被声明。像最初在UNIX中实现的那样,ftell()函数通过返
回局文件开始处的字节数目来确定文件的位置。文件的第一个字节到文件开始
处的距离是字节0,依次类推。 在ANSI C下,这种定义适用于一二进制模式打
开的文件,但是对于以文本模式打开的文件来讲,不一定是这样。
ANSI C规定,对于文本模式,ftell()返回一个可以用作fseek()的第二个
参数的值。例如,MS-DOS,ftell()返回一个将\r\n看成一个字节的计数值。
//----------------------------------------------------------------------------//
fseek() 和 ftell() 函数的一个潜在问题是它们限制文件的大小只能在 long类型
的表示范围之内。随着日益增长的存储设备容量使得更大的文件也成为可能。
ANSI C引入了两个用来处理较大文件的新的定位函数。这两个函数不是采用long类
型,而是使用一种称为 fpos_t(代表 file position type,文件定位类型)的新类型
来代表位置。fpos_t不是一种基本类型,而是通过其他类型定义的。一个fpos_t类型的
变量或者数据对象可以用来制定文件中的一个位置,它不能是一种数组类型,但除此之
外不再有其他限制。因此C实现可以提供一种满足特殊平台需要的类型; 例如,这种类
型可以作为结构来实现。
ANSI C定义了使用fpos_t的方法。fgetpos() 函数具有下面的原型:
int fgetpos(FILE * restrict stream, fpos_t * restrict pos);
被调用时,该函数在pos所指的位置放置一个fpos_t值;这个值描述了文件中的一个
位置。如果成功,函数返回0,否则返回一个非零值。
fsetpos() 函数具有下面的原型:
int fsetpos(FILE * stream, const fpos_t * pos);
被调用时,该函数使用 pos指向的位置上的那个fpos_t值设定文件指针指向该值所指
示的位置。如果成功,函数返回0;否则返回一个非零值。这个fpos_t值应是通过调用
fgetpos() 函数获得的。
fgetpos()
fsetpos()
//----------------------------------------------------------------------------//
[[italic] 本帖最后由 cosdos 于 2007-12-16 21:00 编辑 [/italic]]
----------------解决方案--------------------------------------------------------