C語言學習筆記 檔案讀寫

2021-08-18 21:18:31 字數 2100 閱讀 8411

如何開啟、建立、關閉文字檔案或二進位制檔案?

我們通常使用fopen()函式來建立新檔案或開啟乙個已存在的檔案,這樣呼叫會初始化型別file的乙個物件,型別file包含了所有用來控制流的必要的資訊。

file *fopen( const

char * filename, const

char * mode );

filename是字串,用來命名檔案,訪問模式mode的值可以是下列值中的乙個:

模式描述

r開啟乙個已有的文字檔案,允許讀取檔案。

w開啟乙個文字檔案,允許寫入檔案。如果檔案不存在,則會建立乙個新檔案。在這裡,您的程式會 從檔案的開頭寫入內容。

a開啟乙個文字檔案,以追加模式寫入檔案。如果檔案不存在,則會建立乙個新檔案。在這裡,您的程式會在已有的檔案內容中追加內容。

r+開啟乙個文字檔案,允許讀寫檔案。

w+開啟乙個文字檔案,允許讀寫檔案。如果檔案已存在,則檔案會被截斷為零長度,如果檔案不存在,則會建立乙個新檔案。

a+開啟乙個文字檔案,允許讀寫檔案。如果檔案不存在,則會建立乙個新檔案。讀取會從檔案的開頭開始,寫入則只能是追加模式。

如果處理的是二進位制檔案,則需使用下面的訪問模式來取代上面的訪問模式:

"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
使用fcolse()函式來關閉檔案。

int fclose( file *fp );
如果成功關閉檔案,fclose( )函式返回零,如果關閉檔案時發生錯誤,函式返回eof。這個函式實際上,會清空緩衝區中的資料,關閉檔案,並釋放用於該檔案的所有記憶體。eof是乙個定義在標頭檔案stdio.h中的常量。

int fputc( int c, file *fp );
函式fputc()把引數 c 的字元值寫入到 fp 所指向的輸出流中。如果寫入成功,它會返回寫入的字元,如果發生錯誤,則會返回eof

int fputc( int c, file *fp );
函式fputs()把字串 s 寫入到 fp 所指向的輸出流中。如果寫入成功,它會返回乙個非負值,如果發生錯誤,則會返回eof

#include 

int main()

int fgetc(file *fp);
fgetc()函式從fp所指向的輸入檔案上讀取乙個字元。返回值是讀取的字元,如果發生錯誤則返回eof

char *fgets(char *buf, int n, file *fp);
函式fgets()從fp所指向的輸入流中讀取n-1個字元。它會把讀取的字串複製到緩衝區buf,並在最後追加一上null來終止字串。

#include 

int main()

下面兩個函式用於二進位制輸入和輸出:

size_t fread(void *ptr, size_t size_of_elements, 

size_t number_of_elements, file *a_file);

size_t fwrite(const void *ptr, size_t size_of_elements,

size_t number_of_elements, file *a_file);

c語言 檔案讀寫(學習筆記)

file fp fopen text.txt r char ch,str 50 向檔案輸入單個字元 ch getchar while ch 從檔案中或如單個字元 while feof fp 向檔案輸入字串 gets str puts str fputs str,fp 學習筆記,若輸入的字元長度大於等...

C 語言學習筆記 檔案操作

入門級學習c 語言,避免不了想讓自己的程式能和外界打交道,哪怕是乙個 txt 的記事本,那麼怎麼實現檔案的操作,這裡只是舉個小例子,還有待開發和修正哈 如果是只是為了研究這個操作怎麼寫,就建立乙個 c 的命令列工程就行了,我這裡是為了做上位機,整了個windows的窗體設計,隨便畫了個介面,顯示一下...

C語言學習筆記

include include void swap int p1,int p2 void swapa int arr,int n void printfa int arr,int n int main int argc,char argv swap i,j printfa array,6 swapa...