日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

fsetpos() fgetpos()详解

發布時間:2024/9/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fsetpos() fgetpos()详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fsetpos()詳解

函數原型:int fsetpos(FILE *fp, const fpos_t *pos);

頭文件:#include<stdio.h>

是否是標準函數:是

函數功能:將文件指針定位在pos指定的位置上。該函數的功能與前面提到的fgetpos相反,是將文件指針fp按照pos指定的位置在文件中定位。pos值以內部格式存儲,僅由fgetpos和fsetpos使用。

返回值:成功返回0,否則返回非0。

例程如下 應用fsetpos函數定位文件指針。

#include <stdio.h>

void main( void )

{

FILE *fp;

fpos_t pos;

char buffer[50];

?

if( (fp = fopen( "test.txt", "rb" )) == NULL )

printf( "Trouble opening file/n" );

else

{

?

pos = 10;

?

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

perror( "fsetpos error" );

else

{

?

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

?

printf( "16 bytes at byte %ld: %.16s/n", pos, buffer );

}

}

fclose( fp );

}

例程說明:

(1)首先,程序以只讀方式打開名為test.txt的文件。在這里,test.txt文件中已存入字符串This is a test for testing the function of fsetpos.

(2)將pos設置為10。應用fsetpos函數將文件指針fp按照pos指定的位置在文件中定位。這樣文件指針fp指向字符串中test的字母t。

(3)再從新定位的文件指針開始讀取16個字符到buffer緩沖區,也就是說讀取字符串"test for testing"到緩沖區buffer。

(4)最后顯示結果:16 bytes at byte 10: test for testing 。

fgetpos:取得當前文件的句柄函數

函數原型:int fgetpos( FILE *stream, fpos_t *pos );

頭文件:#include<stdio.h>

是否是標準函數:是

函數功能:取得當前文件的指針所指的位置,并把該指針所指的位置數存放到pos所指的對象中。pos值以內部格式存儲,僅由fgetpos和fsetpos使用。其中fsetpos的功能與fgetpos相反,為了詳細介紹,將在后節給與說明。

返回值:成功返回0,失敗返回非0,并設置errno。

例程如下:應用fgetpos函數取得當前文件的指針所指的位置。

#include <string.h>

#include <stdio.h>

int main(void)

{

FILE *fp;

char string[] = "This is a test";

fpos_t pos;

?

fp = fopen("test.txt", "w+");

?

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

?

fgetpos(fp, &pos);

printf("The file pointer is at byte %ld/n", pos);

?

fseek(fp,3,0);

?

fgetpos(fp, &pos);

printf("The file pointer is at byte %ld/n", pos);

fclose(fp);

return 0;

}

例程說明:

(1)首先,程序以讀寫方式打開一個名為test.txt的文件,并把字符串"This is a test"寫入文件。注意:字符串共14個字節,地址為0~13。用fwrite函數寫入后,文件指針自動指向文件最后一個字節的下一個位置。即這時的fp的值應該是14。

(2)再用fgetpos函數取得指針位置并存入&pos所指向的對象,此時, pos中的內容為14。然后在屏幕上顯示出The file pointer is at byte 14。

(3)再用fseek函數重設文件指針的位置,讓fp的值為3,即指向文件中第4個字節。

再次取得指針位置并存入&pos所指向的對象。然后在屏幕上顯示出The file pointer is at byte 3。

總結

以上是生活随笔為你收集整理的fsetpos() fgetpos()详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。