今天學習了C語言文件輸入輸出操做的相關知識。在此,向你們分享一下學習心得。函數
首先介紹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+:以讀/寫方式打開一個二進制文件,容許讀或在文件末追加數據。指針
與fopen()對應的是fclose(),fclose()用來關閉先前一個fopen()打開的文件. 此動做會讓緩衝區內的數據寫入文件中,
並釋放系統所提供的文件資源. 頭文件:#include <stdio.h> 定義函數:int fclose(FILE * stream);
【返回值】 若關文件動做成功則返回0, 有錯誤發生時則返回EOF 並把錯誤代碼存到errnocode
接下來介紹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; }