首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ACM 入門題 A+B Problem 解析與 C 語言 EOF 機制深度解讀

     編輯:關於C語言

ACM 入門題 A+B Problem 解析與 C 語言 EOF 機制深度解讀

標準解法

#include <stdio.h>
int main() {
    int a, b;
    while (scanf("%d%d", &a, &b) != EOF)
        printf("%d\n", a + b);
    return 0;
}

EOF 深度解析

  • 本質:EOF 是 stdio.h 定義的宏,通常為 -1,不是文件中的特殊字符。
  • 文件讀取:系統通過文件長度判斷結束,讀到末尾返回 EOF(信號值)。二進制文件中可能出現 0xFF 字節,但 fgetc 返回 int,將字節擴展為 0..255,與 -1 不衝突。
  • 鍵盤輸入:Linux 按 Ctrl+D(行首),Windows 按 Ctrl+Z 發送 EOF 信號。
  • 常見陷阱:while (!feof(fp)) 會多循環一次(feof 在讀取嘗試超過末尾後才置真)。最佳實踐:
    int c = fgetc(fp);
    while (c != EOF) { ...; c = fgetc(fp); }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved