本文目錄一覽:
- 1、在C語言中fseek()的功能
- 2、C語言 文件指針 fseek
- 3、C語言中,fseek函數怎麼控制移動的方向?怎麼往前或往後,最好能有個例子。 謝謝!
- 4、c語言中fseek函數中curpos是什麼意思
在C語言中fseek()的功能
fseek()是重定位流(數據流/文件)上的文件內部位置指針。
注意:文件指針指向文件/流。位置指針指向文件內部的字節位置,隨着文件的讀取會移動,文件指針如果不重新賦值將不會改變或指向別的文件。
如果執行成功,stream將指向以fromwhere為基準,偏移offset(指針偏移量)個字節的位置,函數返回0。如果執行失敗(比如offset取值大於等於2*1024*1024*1024,即long的正數範圍2G),則不改變stream指向的位置,函數返回一個非0值。
擴展資料:
注意事項
fseek函數的文件指針,應該為已經打開的文件。如果沒有打開的文件,那麼將會出現錯誤。 fseek函數也可以這樣理解,相當於在文件當中定位。
這樣在讀取規律性存儲文件時可以利用其OFFSET偏移量讀取文件上任意的內容。
fseek函數一般用於二進制文件,也可以用於文本文件。用於文本文件操作時,需特別注意只有fseek(fp, 0, SEEK_SET) 和 fseek(fp, ftell(fp), SEEK_SET)能確保結果符合預期。
參考資料來源:百度百科-fseek
C語言 文件指針 fseek
fptr = fopen(roominfo, “rb+”); //你的文件是以讀寫方式打開的
當一個文件以讀寫方式打開,從讀文件切換到寫文件或者相反操作,必須刷新文件緩衝區(就是把文件的修改寫入磁盤),而fseek操作會引發文件緩衝區的刷新。在你的代碼里fwrite以後,下次判斷是fread,所以如果不刷新文件緩衝區,fread不會讀取到寫入的數據,而fseek(fptr, 0,SEEK_CUR);就是在不移動文件指針的情況下,把緩衝區數據寫入文件,保證fread會讀取到新數據,這是常用手段
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函數中curpos是什麼意思
這個是文件位置的計算位置不同,1是從當然位置移動一定的量,而0是從頭上移動一定的量如fseek(stream, 100L, SEEK_SET); //從文件頭往後移100字節fseek(stream, 100L, SEEK_CUR); //從當前位置往後移100字節,相當於從頭往後移200字節若文件位置在頭上,它們是沒有區別的
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/287395.html