C语言 fseek()
函数用于移动文件指针的位置,或者说是根据文件指针的偏移量重新定位文件指针的位置。
语法
int fseek( FILE *fp, long offset, int origin);
参数
参数 | 说明 |
---|---|
fp | 文件指针 |
offset | 文件指针的偏移量 |
origin | 文件指针定位的位置。可能的值:
|
返回值
返回返回0,失败返回-1。
例子
现介绍一个简单的例子,了解C语言 fseek()
函数 的使用方法。
先准备一个文件yxjc123.txt,内容如下:
123456789
这里结合 fopen(),fclose()、fgetc()函数介绍该函数的使用:
#include <stdio.h>
#include<string.h>
int main( )
{
FILE *file; //定义文件指针
char c;//读取字符
file = fopen("d:/yxjc123.txt", "r");//打开文件
if(NULL == file) {
perror("打开文件失败");
return -1;
}
//第一次读取
printf("第1次读取:");
c=fgetc(file);
//判断是否到达文件末尾
while( !feof(file) )
{
printf("%c", c);
c=fgetc(file);
}
printf("\n");
//移动指针到文件开头
fseek(file, 0, SEEK_SET);
printf("第2次读取:");
//第二次读取 输出1,3,5,7,9
c=fgetc(file);
//判断是否到达文件末尾
while( !feof(file) )
{
printf("%c", c);
fseek(file, 1, SEEK_CUR);
c=fgetc(file);
}
fclose(file); //关闭文件
getchar();
return 0;
}
输出:
在上面的例子中,
第一次读取全部输出,然后我们将指针移动到了文件的开头,
第二次读取的时候读取1,3,5,7,9,每次读取完变移动一个单位的指针,这样可以间隔读取。