fgetpos
fgetpos是一個函式名,功能是依據當前檔案的控制程式碼,獲取當前訪問指標位置資訊。
- 中文名
- fgetpos
- 名詞型別
- 函式
- 名詞領域
- 程式設計
- 功 能
- 獲取當前訪問指標位置資訊
函式名
編輯函式原型: int fgetpos(FILE * restrict stream,fpos_t * restrict pos);
函式功能:在pos所指的位置放置一個fpos_t值,這個值描述了檔案中的一個位置。
返回值:如果成功,函式返回0;否則返回一個非零值。
程式事例
編輯程式例1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include<string.h> #include<stdio.h> intmain( void ) { FILE *stream; charstring[]= "Thisisatest" ; fpos_t filepos; /*openafileforupdate*/ stream= fopen ( "DUMMY.FIL" , "w+" ); /*writeastringintothefile*/ fwrite (string, strlen (string),1,stream); /*reportthefilepointerposition*/ fgetpos (stream,&filepos); printf ("Thefilepointerisatbyte\ %ld\n",filepos); fclose (stream); return0; } |
程式例2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
voidDeleteRowData(intRowNum) { /*typedef__int64fpos_t1;*/ typedef fpos_t ; FILE *fin; charstrsub[20]; /**strsub沒顯示*/ fpos_t pos_w; fpos_t pos_r; fpos_t pos; inti,k,L=1; char *one_line; L=RowNum; *strsub=0; one_line=( char *) malloc (1000* sizeof ( char )); fin= fopen ( "data.TXT" , "rb+" ); for (i=1;i<L;i++) fgets (one_line,999,fin); fgetpos (fin,&pos_w); /*該函式在casiodt930上行不通,不解*/ fgets (one_line,999,fin); fgetpos (fin,&pos_r); pos=pos_r; while (1==1) { fsetpos (fin,&pos); if ( fgets (one_line,999,fin)==NULL) break ; fgetpos (fin,&pos_r); pos=pos_w; fsetpos (fin,&pos); fprintf (fin, "%s" ,one_line); fgetpos (fin,&pos_w); pos=pos_r; } fclose (fin); //sprintf(strsub,"%s,%d","test3",L); //Display(7,10,(UB*)"",0);/*清空*/ //Display(7,10,(UB*)strsub,0); return ; |