fsetpos函数,fputs fgets

  fsetpos函数,fputs fgets

  fsetpos()的详细说明

  原型:intfsetpos (file * fp,constfpos _ t * pos);

  头文件:# includesdio.h

  是标准功能吗:是。

  功能:将文件指针定位在pos指定的位置。这个函数的作用与前面提到的fgetpos相反,是根据pos指定的位置在文件中定位文件指针fp。Pos值以内部格式存储,仅由fgetpos和fsetpos使用。

  返回值:0成功返回,否则不为0。

  该例程应用fsetpos函数来定位文件指针,如下所示。

  #包含stdio.h

  无效总管(无效)

  {

  FILE * fp

  fpos _ t pos

  充电缓冲器[50];

  if( (fp=fopen( test.txt , Rb )==NULL)

  printf(打开文件时出现问题/n );

  其他

  {

  pos=10

  if( fsetpos( fp,pos)!=0 )

  perror( fset pos error );

  其他

  {

  fread( buffer,sizeof( char),16,FP);

  printf(字节%ld处的16个字节:%.16s/n ,位置,缓冲区);

  }

  }

  fclose(FP);

  }

  常规描述:

  (1)首先,程序以只读方式打开名为test.txt的文件。这里,字符串this is a test用于测试fsetpos的功能已经存储在test.txt文件中。

  (2)将位置设置为10。根据pos指定的位置,使用fsetpos函数在文件中定位文件指针fp。这样,文件指针fp指向字符串中的字母t test。

  (3)从新定位的指向缓冲区的文件指针中读取16个字符,也就是说,将字符串“test for testing”读取到缓冲区buffer中。

  (4)最终显示结果:字节10处16个字节:test for testing。

  获取当前文件的句柄函数

  原型:intfgetpos (file * stream,fpos _ t * pos);

  头文件:# includesdio.h

  是标准功能吗:是。

  功能:获取当前文件的指针所指向的位置,并将指针所指向的位置数存储在pos所指向的对象中。Pos值以内部格式存储,仅由fgetpos和fsetpos使用。fsetpos的功能与fgetpos相反,将在下一节详细介绍。

  返回值:成功返回0,失败返回非0,设置errno。

  例程如下:应用fgetpos函数获取当前文件指针所指向的位置。

  #包含字符串. h

  #包含stdio.h

  int main(void)

  {

  FILE * fp

  char string[]=这是一个测试;

  fpos _ t pos

  fp=fopen(test.txt , w );

  fwrite(string,strlen(string),1,FP);

  fgetpos(fp,pos);

  printf(文件指针在字节%ld/n ,位置);

  fseek(fp,3,0);

  fgetpos(fp,pos);

  printf(文件指针在字节%ld/n ,位置);

  fclose(FP);

  返回0;

  }

  常规描述:

  (1)首先,程序以读写方式打开一个名为test.txt的文件,将字符串‘This is a test’写入文件。注意:该字符串由14个字节组成,地址从0到13。用fwrite函数写入后,文件指针自动指向文件最后一个字节的下一个位置。也就是此时fp的值应该是14。

  (2)使用fgetpos函数获取指针位置,并存储在pos指向的对象中。此时,pos中的内容为14。那么文件指针在字节14显示在屏幕上。

  (3)用fseek函数重置文件指针的位置,使fp的值为3,即指向文件中的第4个字节。

  再次获取指针位置,并存储在pos指向的对象中。然后文件指针在字节3显示在屏幕上。

fsetpos函数,fputs fgets