<stdio.h>,值通常為 -1(int 型別)。int feof(FILE *stream)。// 錯誤:feof() 在讀取失敗後才置位,會多處理一次
while (!feof(fp)) {
fread(...);
process(...);
}
// 正確:直接檢查讀取函數返回值
while (fread(buf, 1, sizeof(buf), fp) > 0) {
process(buf);
}
| 特性 | EOF | feof() |
|---|---|---|
| 適用檔案類型 | 僅文字檔 | 文字檔 + 二進位檔 |
| 判斷時機 | 讀取函數返回值 | 檔案狀態旗標 |
| 可移植性 | 依賴實現 | 標準 C |
建議:統一使用讀取函數的返回值判斷迴圈結束,避免直接使用 feof() 控制迴圈。