C语言文件函数

C语言 fseek() 函数用于移动文件指针的位置,或者说是根据文件指针的偏移量重新定位文件指针的位置。

语法

int fseek( FILE *fp, long offset, int origin);

参数

参数说明
fp文件指针
offset文件指针的偏移量
origin

文件指针定位的位置。可能的值:

  • SEEK_SET    文件开头,取值0
  • SEEK_CUR    文件指针的当前位置,取值1
  • SEEK_END    文件结尾,取值2

返回值

返回返回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;
 
}

输出:

C语言fseek()函数:移动文件指针

在上面的例子中,

第一次读取全部输出,然后我们将指针移动到了文件的开头,

第二次读取的时候读取1,3,5,7,9,每次读取完变移动一个单位的指针,这样可以间隔读取。