fgetpos

2puT發表於2016-07-16



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;

相關文章