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显示在屏幕上。