天天看點

一起talk C栗子吧(第一百四十二回:C語言執行個體--檔案操作:基于檔案指針二)

各位看官們,大家好,上一回中咱們說的是基于檔案指針進行檔案操作的例子,這一回咱們繼續說該例子。閑話休提,言歸正轉。讓我們一起talk C栗子吧!

看官們,我們在上一回中介紹了檔案指針,今天我們将和大家一起看看如何通過檔案指針來操作檔案。檔案操作仍然使用我們總結的檔案操作三步曲:打開,操作和關閉。我們将使用标準庫中的函數來實作這些檔案操作。接下來我們介紹标準庫中與檔案操作相關的函數。

打開檔案的函數

FILE *fopen(const char *path, const char *mode);
           
  • 該函數用來打開檔案或者建立一個新檔案;
  • 該函數的第一個參數是檔案名,該檔案名表示要打開的檔案或者建立的檔案;
  • 該函數的第二個參數是打開檔案的方式,詳見下面的說明;
  • 該函數運作成功時傳回一個非空的檔案指針;運作失敗時傳回NULL。

第二個參數是字元串,它的值可以是以下類型中的任意一個:

  • “r”(隻讀的方式打開檔案),
  • “w”(隻寫的方式打開檔案,并且把檔案長度設定為0,如果檔案不存在就建立檔案),
  • “a”(隻寫的方式打開檔案,資料追加在檔案末尾), ”r+”(以讀和寫的檔案打開檔案),
  • ”w+”(以讀和寫的檔案打開檔案,并且把檔案長度設定為0),
  • “a+”(以讀和寫的方式打開檔案,資料追加在檔案末尾),

操作檔案的函數

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
           
  • 該函數用來從檔案中讀取資料;
  • 該函數的第一個參數是指向緩沖區的指針,從檔案中讀取的資料會存放到該指針指向的緩沖區中;
  • 該函數的第二個參數是每次讀取資料的大小;
  • 該函數的第三個參數是讀取資料的次數,它與第二個參數的積就是一共讀取的資料大小;
  • 該函數的第四個參數是檔案指針,它會讀取該檔案指針所指向的的檔案中的資料;
  • 該函數運作成功時傳回讀取到資料的數量,通常與第三個參數的值相等,如果到了檔案末尾時會小于該值,或者為0。如果運作失敗會把失敗資訊寫入到标準錯誤流中.可以使用ferror()函數檢視錯誤資訊。
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
           
  • 該函數用來向檔案中寫入資料;
  • 該函數的第一個參數是指向緩沖區的指針,它會把緩沖區中的資料寫入到檔案中;
  • 該函數的第二個參數是每次寫入資料的大小;
  • 該函數的第三個參數是寫入資料的次數,它與第二個參數的積就是一共寫入的資料大小;
  • 該函數的第四個參數是檔案指針,它會把資料寫入到該指針所指向的的檔案中;
  • 該函數運作成功時傳回寫入資料的數量,通常與第三個參數的值相等,如果傳回的值小于該值,或者為0, 那麼就表示發生了錯誤。同時會把失敗資訊寫入到标準錯誤流中,可以使用ferror()函數檢視錯誤資訊。

關閉檔案的函數

int fclose(FILE *fp)
           
  • 該函數用來關閉檔案;
  • 該函數的參數表示檔案指針,它會把與該檔案指針所指的檔案關閉掉,同時關閉檔案流。
  • 該函數運作成功時傳回0,運作失敗時傳回-1.同時設定全局變量error。

各位看官,關于檔案操作:基于檔案指針的例子咱們就說到這裡。欲知後面還有什麼例子,且聽下回分解 。

繼續閱讀