當前位置:首頁 » 編程語言 » c語言fseek函數

c語言fseek函數

發布時間: 2022-07-06 11:49:34

⑴ 在c語言中,fseek(fp,sizeof(int)*3,0)是什麼意思

int fseek(FILE *stream, long offset, int fromwhere);函數設置文件指針stream的位置。
如果執行成功,stream將指向以fromwhere為基準,偏移offset(指針偏移量)個位元組的位置,函數返回0。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置,函數返回一個非0值。
函數設置文件指針stream的位置。如果執行成功,stream將指向以fromwhere(偏移起始位置:文件頭0(SEEK_SET),當前位置1(SEEK_CUR),文件尾2(SEEK_END))為基準,偏移offset(指針偏移量)個位元組的位置。如果執行失敗(比如offset超過文件自身大小),則不改變stream指向的位置。

fseek函數和lseek函數類似,但lseek返回的是一個off_t數值,而fseek返回的是一個整型。

所以,fseek(fp,sizeof(int)*3,0)函數將文件指針指向從文件開頭,向後偏移3個int單元的地方。

⑵ C語言中文本文件定位用什麼函數

c語言的文件定位是fseek函數fseek(文件指針,位偏移,起始點);起始點c提供了文件開始
文件當前位置
文件末尾三個值分別對應0
1
2,位偏移是只偏移多少個位元組而不是幾行c語言貌似不支持以行的形式移動指針
例:fseek(fp,100L,0);將位置指針移到離文件頭100個位元組處
如果第二個參數是負數的就是後退多少位元組

⑶ c語言中的fseek函數如何定位到下一行

fseek本身無法定位下一行。
但是可以通過自定義函數來處理。
#include
<stdio.h>
int
getNextLinePos(FILE
*p)
{
int
ch;
int
curpos
=
0;
ch=getc(p);
curpos
=
ftell(p);
while(ch!=EOF)
{
putchar(ch);
ch=getc(p);
if(ch
==
'\n')
{
break;
}
}
return
(ftell(p)
-
curpos
+
1);
}
int
main(void)
{
FILE
*fp;
fp=fopen("FileDemo.tt","r");
if
(fp==NULL)
{
printf("I
can't
open
file!\n");
return
0;
}
fseek(fp,
getNextLinePos(fp),
SEEK_SET);
//
指向下一行
return
0;
}

⑷ 二叉樹 鏈表 在C語言中是什麼意思 fseek函數是什麼意思

二叉樹
鏈表是
數據結構,在C語言里邊可以實現,在其他語言里邊同樣可以實現。
fseek函數是移動文件指針的,和fopen,fclose,fread,fwrite等配合使用。

⑸ C語言關於fseek函數。

中文文件要用TCHAR之類的多位元組方法處理。
你的方法是把中文看成2進制一個字元一個字元的數據文件來處理,也是可以的,fseek工作完全正常,
問題是輸出字元的顯示,你可以顯示每個位元組的值,但不能顯示成肉眼可識別的漢字。
putchar ( ch ); 可用於 ASCII字元。
你可以換成: printf("%02x ", 0xff & ch ); 可以顯示單個位元組的碼值。從輸出的碼值可以看出,程序沒有問題,只是不能顯示成肉眼可識別的漢字。
另外,如果是unicode中文文件,則文件頭有不可見的文件類型區分碼0xfe 0xff 或 0xff 0xfe 等等。
2個單個位元組碼,合成一個雙位元組碼,有大端和小端文件問題,也許需要互相交換相鄰2個位元組,再顯示成中文。

⑹ 關於C語言的fseek()函數中的起始位置當前位置如何理解

這個問題要從FILE結構體的數據項組成講起: struct _iobuf { char *_ptr; //文件輸入的下一個位置 int _cnt; //當前緩沖區的相對位置 char *_base; //指基礎位置(即是文件的起始位置) int _flag; //文件標志 int _file; //文件的有效性驗證 int _charbuf; //檢查緩沖區狀況,如果無緩沖區則不讀取 int _bufsiz; //文件的大小 char *_tmpfname; //臨時文件名 } FILE; (註:這是vc++6.0對FILE的定義) 在用fopen()函數打開文件後系統將自動建立一個數據塊存放上述信息。 其中「char *_base; 」 指向文件頭在緩沖區的位置(即fseek()函數第三形參origin的SEEK_SET常量) 「char *_ptr;」 減一即文件指針的當前位置(即fseek()函數第三形參origin的SEEK_CUR常量) 函數原型:int fseek( FILE *stream, long offset, int origin ) 中offset參數是個相對變數,它是相對於origin而言的。比如 int fseek( fp,100L,SEEK_SET ); 就是以文件頭為基準向後移動100個位元組。原理就是對內存中的FILE結構體中的元素作如下操作 FILE._ptr=FILE._base+100; int fseek( fp,100L,SEEK_CUR ); 就是以文件的當前位置為基準向後移動100個位元組,相應的:FILE._ptr+=100; 其他的就不多講了.明白了嗎?

⑺ C語言中fseek函數的第2個和第3個參數的具體含義

fseek函數:

int
fseek(fp,offset,base)
FILE
*fp;
long
offset;
int
base;

其中,第二個參數offset是位移量,第三個參數base是基準
函數的功能是
將fp所指向的文件位置指針移到以base所指出的位置為基準、以offset為位移量的位置

⑻ c語言中fseek函數怎樣指到文件末尾

fseek有三個參數,第1個是文件句柄,通過打開文件時得到;第2個就是移動的位元組數,這個數可以是正的,就是向後(文件尾部)移動,也可以是負的,即向前(文件頭部)移動;第3個參數指明從哪裡移動,如果寫SEEK_SET就是從文件頭部移動多少位元組,如果

⑼ C語言中,fseek函數怎麼控制移動的方向怎麼往前或往後,最好能有個例子。 謝謝!

fseek有三個參數,第1個是文件句柄,通過打開文件時得到;第2個就是移動的位元組數,這個數可以是正的,就是向後(文件尾部)移動,也可以是負的,即向前(文件頭部)移動;第3個參數指明從哪裡移動,如果寫SEEK_SET就是從文件頭部移動多少位元組,如果寫SEEK_END則是從尾部開始移動,SEEK_CUR則是從當前位置移動。
比如
要將文件指針移動到文件開始的第24位元組位置:fseek(fp,24,SEEK_SET);
移動到文件尾部向前50位元組:fseek(fp,-50,SEEK_SET);
在當前位置移動8個位元組(跳過8個位元組數據):fseek(fp,8,SEEK_CUR);
在當前位置向前移動16個位元組(准備重新讀取數據):fseek(fp,-16,SEEK_CUR);

⑽ C語言 fseek(fp,offset,SEEK_SET)什麼意思

首先得保證文件已經打開,不然會報錯。
fseek是一種函數
fp :指針
offset:偏移量
seek_set:文件開頭

總體意思,將指針移到文件開頭,偏移量為「2」(自己設置多少,正後,負前,我設置的意思是移動到後2個位元組處)

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726