黑马程序员技术交流社区
标题:
C语言学习笔记:文件定位及文件检测函数
[打印本页]
作者:
弥修斯
时间:
2015-7-16 18:21
标题:
C语言学习笔记:文件定位及文件检测函数
文件定位 :
fseek(移动文件流的读写位置)
定义函数 int fseek(FILE * fp, long offset , int whence);
函数说明 fseek()用来移动文件流的读写位置。参数fp为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。
参数 whence为下列其中一种:
SEEK_SET == 0 从距文件开头offset位移量为新的读写位置。
SEEK_CUR == 1 以目前的读写位置往后增加offset个位移量。
SEEK_END == 2 将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。
范例代码如下:
#include<stdio.h>
main()
{
FILE * stream;
long offset;
fpos_t pos;
stream=fopen(“/etc/passwd”,”r”);
fseek(stream,5,SEEK_SET);
printf(“offset=%d/n”,ftell(stream));
rewind(stream);
fgetpos(stream,&pos);
printf(“offset=%d/n”,pos);
pos=10;
fsetpos(stream,&pos);
printf(“offset = %d/n”,ftell(stream));
fclose(stream);
}
复制代码
执行 offset = 5
offset =0
offset=10
rewind(重设文件流的读写位置为文件开头)
定义函数 void rewind(FILE * stream);
函数说明 rewind()用来把文件流的读写位置移至文件开头。参数stream为已打开的文件指针。此函数相当于调用fseek(stream,0,SEEK_SET)。
返回值
范例 参考fseek()
文件检测函数:
feof(检查文件流是否读到了文件尾)
定义函数 int feof(FILE * stream);
函数说明 feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。如果已到文件尾则返回非零值,其他情况返回0。
返回值 返回非零值代表已到达文件尾。
PS: feof会多执行一次 造成最后会输出一些乱码 ,用宏定义zhong: EOF 可避免乱码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2