C語言文件輸入和輸出操做的學習心得(一)

概述

今天學習了C語言文件輸入輸出操做的相關知識。在此,向你們分享一下學習心得。函數

fopen()

首先介紹fopen()這個函數,如下內容爲fopen()函數的詳解: 頭文件:#include <stdio.h>
fopen()是一個經常使用的函數,用來以指定的方式打開文件。
其原型爲: FILE fopen(const char path, const char * mode);
【參數解釋】
path:包含了路徑的文件名,文件的路徑應寫成形如C:文件夾1文件夾2文件.txt,或者/文件夾1/文件夾2/文件.txt的形式。
mode:打開文件的方式 如下是幾種常見的方式:學習

r:以只讀方式打開文件,該文件必須存在。 r+:以讀/寫方式打開文件,該文件必須存在。
rb+:以讀/寫方式打開一個二進制文件,只容許讀/寫數據。
rt+:以讀/寫方式打開一個文本文件,容許讀和寫。w打開只寫文件,若文件存在則長度清爲0,即該文件內容消失,若不存在則建立該文件。
w+:打開可讀/寫文件,若文件存在則文件長度清爲零,即該文件內容會消失。若文件不存在則創建該文件。
a:以附加的方式打開只寫文件。若文件不存在,則會創建該文件,若是文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留(EOF符保留)。
a+:以附加方式打開可讀/寫的文件。若文件不存在,則會創建該文件,若是文件存在,則寫入的數據會被加到文件尾後,即文件原先的內容會被保留(原來的EOF符不保留)。
wb:以只寫方式打開或新建一個二進制文件,只容許寫數據。 wb+:以讀/寫方式打開或創建一個二進制文件,容許讀和寫。
wt+:以讀/寫方式打開或創建一個文本文件,容許讀寫。 at+:以讀/寫方式打開一個文本文件,容許讀或在文本末追加數據。
ab+:以讀/寫方式打開一個二進制文件,容許讀或在文件末追加數據。指針

fclose()

與fopen()對應的是fclose(),fclose()用來關閉先前一個fopen()打開的文件. 此動做會讓緩衝區內的數據寫入文件中,
並釋放系統所提供的文件資源. 頭文件:#include <stdio.h> 定義函數:int fclose(FILE * stream);
【返回值】 若關文件動做成功則返回0, 有錯誤發生時則返回EOF 並把錯誤代碼存到errnocode

fwrite()

接下來介紹fwrite()函數,fwrite()函數的做用是向文件流寫入數據。 其原型爲:fwrite(void buffer, size,
count, FILE stream); 【參數解釋】 buffer:數據的原地址,能夠通俗理解成須要寫入的內容。
size:每一個單元的字節數 count:單元的個數 stream:文件流的指針
【返回值】
返回成功寫入的單元個數。若是小於count,則說明發生了錯誤,文件流錯誤標誌位將被設置,隨後能夠經過ferror()函數判斷。資源

注意:一開始接觸這個函數時不少人不太明白size和count的取值該如何決定。若是所須要輸入的字節數爲24,那麼size的值能夠爲4,count的值能夠爲6。一樣,size能夠爲8,count能夠爲3。總之,這兩個參數的乘積最好爲所須要輸入的字節數,若小於這個數會形成輸入缺失,若多於這個數會出現沒必要要的亂碼。原型

實例

如下將以一個簡單實例演示如何向文件輸入數據,包含了fopen()和fwrite()的用法。it

include <stdio.h>
int main()
{
   FILE *pFile;//定義文件指針
   char str[]="What a wonderful world!";//須要輸入的數據
   int size = sizeof(str);//用sizeof()函數得出數據的字節數
   pFile = fopen("testxt", "w");
   if(pFile == NULL)//判斷指針是否爲空
   {
       printf("can not open the file");
       fclose(pFile);
       return 0;
   }
   fwrite(str,1,size,pFile);
   fclose(pFile);
   return 0;
}
相關文章
相關標籤/搜索