1. 文件的開啟
使用fopen()函數(shù)可以打開指定文件,該函數(shù)會在內存中為文件分配一個FILE結構體區(qū)域,并將該結構體的指針返回給程序。此后,程序通過這個FILE指針對文件進行讀寫操作。打開文件時,需指定文件名和操作模式(如讀、寫、讀寫)。若文件不存在且指定為寫模式,則會創(chuàng)建新文件;若文件已存在且指定為寫模式,則原有內容會被清空(僅針對寫模式)。
c復制代碼FILE *fp = fopen("test", "w"); if (fp == NULL) { printf("文件打開失敗\n"); exit(1); } else { printf("文件成功打開用于寫入\n"); } // ... 文件操作 ... fclose(fp);
在DOS系統(tǒng)中,同時打開的文件數(shù)量有限,默認通常為5個,可通過修改CONFIG.SYS文件來調整。
2. 文件的關閉
完成文件操作后,應使用fclose()函數(shù)關閉文件。此操作確保文件緩沖區(qū)中的未寫入內容被寫入文件,并釋放與該文件相關的資源。
c復制代碼if (fclose(fp) != 0) { printf("文件關閉失敗\n"); exit(1); } else { printf("文件已關閉\n"); }
若需同時關閉多個文件,可使用fcloseall()函數(shù)。
3. 文件的讀寫
字符讀寫
fge*() 和 fpu*() 分別用于從文件和向文件寫入單個字符。ge*har() 和 pu*har() 是標準輸入輸出流(stdin和stdout)的簡化版本。ge*() 和 pu*() 是fge*()和fpu*()的宏定義,功能相同。
fge*() 和 fpu*() 分別用于從文件和向文件寫入單個字符。ge*har() 和 pu*har() 是標準輸入輸出流(stdin和stdout)的簡化版本。ge*() 和 pu*() 是fge*()和fpu*()的宏定義,功能相同。示例:逐字符讀取并顯示文件內容。
c復制代碼FILE *fp = fopen("myfile.txt", "r"); int ch; while ((ch = fge*(fp)) != EOF) { pu*har(ch); } fclose(fp);
注意:EOF的值為-1,因此變量ch應聲明為int類型。
字符串讀寫
fgets() 讀取文件中的一行字符串。fputs() 向文件寫入一個字符串。fprintf() 和 fscanf() 分別用于向文件和從文件格式化讀寫數(shù)據(jù)。
fgets() 讀取文件中的一行字符串。fputs() 向文件寫入一個字符串。fprintf() 和 fscanf() 分別用于向文件和從文件格式化讀寫數(shù)據(jù)。