本文總結了在C語言中與文件流相關的標準庫函數。
文件流常用標準庫函數
使用下列文件流相關函數需要包含頭文件stdio.h。
| 函數 | 作用 | 注意事項 | |
|---|---|---|---|
| 打開或關閉文件流 | fopen |
打開文件,返回指向FILE的指針 | 需要指定模式(如“r”, “w”, “a”等),並處理可能的文件打開錯誤 |
fclose |
關閉文件流,釋放流資源 | 確保每個打開的文件流最終都被關閉,避免資源泄露 | |
| 讀寫二進制文件流 | fread |
從文件流中讀取數據 | 需要檢查返回值以確定讀取的數據量和是否遇到錯誤或EOF |
fwrite |
向文件流中寫入數據 | 需要檢查返回值以確保數據正確寫入 | |
| 逐字符讀寫文本文件流 | fgetc |
從文件流中讀取下一個字符 | 在達到文件末尾或出現錯誤時返回EOF |
fputc |
將一個字符寫入文件流 | 返回寫入的字符,若出現錯誤則返回EOF | |
| 逐行讀寫文本文件流 | fgets |
從文件流中讀取字符串(一行) | 確保正確處理緩衝區長度和行尾字符 |
fputs |
將字符串(不包括NUL終止符)寫入文件流 | 不會自動添加換行符,需手動處理 | |
| 格式化讀寫文本文件流 | fscanf |
從文件流中格式化讀取數據 | 與scanf類似,但從文件流讀取 |
fprintf |
格式化輸出到文件流 | 類似於printf,但輸出到文件流 |
|
| 文件流狀態檢查 | feof |
檢查文件流的EOF標誌 | 通常用於循環讀取數據時判斷文件是否結束 |
ferror |
檢查文件流的錯誤指示器 | 用於錯誤處理和調試 | |
| 文件定位 | ftell |
返回文件流的當前文件位置指示器 | 配合fseek可實現文件的隨機訪問 |
fseek |
設置文件流的文件位置指示器 | 可用於移動文件指針到特定位置 | |
rewind |
將文件流的文件位置指示器重置到文件開頭 | 等同於fseek(stream, 0, SEEK_SET) |
|
| 刷新緩衝區 | fflush |
刷新輸出緩衝區到文件,丟棄輸入緩衝區內容 | 參數為NULL時,刷新所有打開的文件流 |