fclose 關閉文件
int fclose(FILE *fp);
- 斷開指針與文件關聯,刷新緩衝區
- 返回 0 成功,非 0 失敗(如磁盤滿、設備錯誤)
四大讀寫函數族系
| 層級 | 讀取 | 寫入 | 單位 |
| 字符 | fgetc | fputc | 1 字節 |
| 字符串 | fgets | fputs | 行/指定長度 |
| 數據塊 | fread | fwrite | 結構體/數組 |
| 格式化 | fscanf | fprintf | 格式串 |
均需 #include <stdio.h>。
fgetc 核心機制
int ch = fgetc(FILE *fp);
- 文件必須以
"r"、"r+"、"rb" 等讀模式打開
- 可忽略返回值
fgetc(fp); 僅移動指針
- 文件指針 vs 位置指針:
- 文件指針(
FILE*):程序變量,指向文件控制塊,值不變
- 位置指針:系統維護,指示下一讀寫字節,每次操作自動後移
- 讀至末尾返回
EOF(通常 -1)
範例:完整文件輸出到屏幕
FILE *fp = fopen("e10_1.c", "rt");
int ch = fgetc(fp);
while (ch != EOF) {
putchar(ch);
ch = fgetc(fp);
}
fclose(fp);
流程:打開 → 先讀一字符 → 循環輸出並讀下一字符 → 遇 EOF 退出 → 關閉。
常見錯誤
- 未檢查
fopen 返回值直接使用
- 文本模式讀二進制文件導致
0x1A (Ctrl+Z) 被誤判為 EOF
- 忘記
fclose 造成資源洩漏、數據未刷新
- 上一篇文章: C 語言字符寫入函數 fputc 詳解:從鍵盤輸入到文件複製的完整實戰
- 下一篇文章: C 語言文件系統基礎:從概念分類到 FILE 指針操作全景圖
Copyright ©
程式碼之家 All Rights Reserved