目錄
- 一.fseek 函式簡介
- 二.fseek 函式實戰
- 三.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.fseek 函式簡介
fseek 函式用來移動檔案流的讀寫位置;就好比播放器,可以直接拖拽到精彩的時間點一樣,fseek 函式宣告如下
#include <stdio.h>
#include <stdlib.h>
/*
*描述:檔案讀寫偏移
*
*引數:
* [in] stream:檔案指標句柄
* [in] offset:偏移量,正數表示正向偏移(向后偏移),負數表示負向偏移(向前偏移)
* [in] fromwhere:設定從檔案的哪里開始偏移,可能取值為:SEEK_CUR、 SEEK_END 或 SEEK_SET
*
*回傳值:如果執行成功,函式回傳0,如果執行失敗,函式回傳一個非0值,如果執行失敗(比如offset超過檔案自身大小),則不改變stream指向的位置,
*/
int fseek(FILE *stream, long offset, int fromwhere);
注意:引數 fromwhere 為下列其中一種:
-
SEEK_SET 從距檔案開頭 offset 位移量為新的讀寫位置.
-
SEEK_CUR 以目前的讀寫位置往后增加 offset 個位移量.
-
SEEK_END 將讀寫位置指向檔案尾后再增加 offset 個位移量.
fseek(fp,100L,SEEK_SET); //把 stream 指標移動到離檔案開頭 100 位元組處;
fseek(fp,100L,SEEK_CUR); //把 stream 指標移動到離檔案當前位置 100 位元組處;
fseek(fp,-100L,SEEK_END); //把 stream 指標退回到離檔案結尾 100 位元組處,
二.fseek 函式實戰
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.com
//@File:C語言教程 - C語言 檔案讀寫 fseek 函式
//@Time:2021/07/24 07:30
//@Motto:不積跬步無以至千里,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
#include <stdio.h>
#include <stdlib.h>//fseek函式呼叫
int main()
{
// 開始檔案中的內容為0123456789
FILE * fp = fopen("a.txt", "r+");
if (fp == NULL) {
printf("file error\n");
exit(1);
}
fseek(fp, 2, SEEK_SET);//游標移到檔案開始起第二個位元組處,
fwrite("yun", 1, 3, fp); //檔案內寫入內容yun
fclose(fp);
return 0;
}
/*
原始檔案內容:
0123456789
運行該程式后檔案內容:
01yun56789
*/
如果執行失敗(比如 offset 超過檔案自身大小),則不改變 stream 指向的位置;
fseek 函式的檔案指標,應該為已經打開的檔案,如果沒有打開的檔案,那么將會出現錯誤;
fseek 函式也可以這樣理解,相當于在檔案當中定位,這樣在讀取規律性存盤檔案時可以利用其 OFFSET 偏移量讀取檔案上任意的內容;
三.猜你喜歡
- C 語言 陣列下標越界和記憶體溢位區別
- C 語言 使用指標遍歷陣列
- C 語言 指標和陣列區別
- C 語言 指標陣列和陣列指標區別
- C 語言 野指標
- C 語言 函式值傳遞和址傳遞
- C 語言 函式不定長引數
- C 語言 函式指標
- C 語言 指標函式
- C 語言 回呼函式 callback
- C 語言 #pragma once
- C 語言 #include <> 與 #include “” 區別
- C 語言 const 修飾函式引數
- C 語言 const 和 define 區別
- C 語言 #運算子
- C 語言 ##運算子
- C 語言 __VA_ARGS__
- C 語言 ##__VA_ARGS__
- C 語言 函式不定長引數 ##__VA_ARGS__經典案例
- C 語言 va_start / va_end / va_arg 自定義 printf 函式
- C 語言 main 函式
- C 語言 main 函式引數 main(int argc, char *argv[])
- C 語言 區域變數
- C 語言 全域變數
- C 語言 全域變數和區域變數區別
- C 語言 static
- C 語言 extern
未經允許不得轉載:猿說編程 ? C 語言 檔案讀寫 fseek 函式
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/310356.html
標籤:其他
