各位看官們,大家好,上一回中咱們說的是基於文件指針進行文件操作的例子,這一回咱們繼續說該例子。閒話休提,言歸正轉。讓我們一起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。
各位看官,關於文件操作:基於文件指針的例子咱們就說到這裡。欲知後面還有什麼例子,且聽下回分解 。