C++eof意思

在C++中,eof通常是指 "end of file",即檔案結束符。當使用C++的標準輸入/輸出流庫讀取檔案時,如果到達了檔案的末尾,就會觸發檔案結束條件,此時 std::ifstream 對象的 eof 成員函式將會返回 true。

例如,以下代碼使用 std::ifstream 讀取一個檔案,並使用 eof 成員函式來判斷是否到達檔案末尾:

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("example.txt"); // 打開檔案
    if (file.is_open()) {
        std::string line;
        while (std::getline(file, line) && !file.eof()) { // 讀取一行直到檔案結束
            std::cout << line << std::endl;
        }
        file.close(); // 關閉檔案
    } else {
        std::cerr << "Failed to open file" << std::endl;
    }
    return 0;
}

在這個例子中,std::getline 函式用於讀取一行,而 !file.eof() 用於判斷是否到達檔案末尾。如果 eof 返回 true,表示已經到達檔案末尾,不再讀取數據。

需要注意的是,eof 成員函式在讀取操作之後立即檢查,因為它設定了一個內部標誌,以指示是否到達檔案末尾。如果讀取操作成功,即使沒有到達檔案末尾,eof 也會返回 true。因此,通常應該在讀取操作之後立即檢查 eof,以確保它的值是有效的。