C++ IOS::eof() 函式



C++ 的std::ios::eof()函式用於檢查在輸入操作期間是否已達到檔案結尾 (EOF)。如果遇到 EOF,此函式返回布林值 true,否則返回 false。

語法

以下是 std::ios::eof() 函式的語法。

bool eof() const;

引數

它不接受任何引數。

返回值

如果流的 eofbit 錯誤狀態標誌已設定(表示上次輸入操作已到達檔案結尾),則返回 true。

異常

如果丟擲異常,則流不會發生任何更改。

資料競爭

訪問流物件。

同時訪問同一個流物件可能會導致資料競爭。

示例

讓我們來看下面的例子,我們將讀取輸入中的整數,直到輸入結束。

#include <iostream>
int main()
{
    int x;
    std::cout << "Input : " << std::endl;
    while (std::cin >> x) {
        std::cout << "Input Entered : " << x << std::endl;
    }
    if (std::cin.eof()) {
        std::cout << "End Of Input Detected." << std::endl;
    } else {
        std::cout << "Error Occurred." << std::endl;
    }
    return 0;
}

輸出

以上程式碼的輸出如下:

Input : 1 2 3 

Input Entered : 2
Input Entered : 3

示例

考慮以下示例,我們將從輸入中讀取整數或單詞。在這種情況下,我們給出錯誤的輸入並觀察輸出。

#include <iostream>
#include <string>
int main()
{
    std::cout << "Input : " << std::endl;
    while (true) {
        int x;
        std::string y;
        if (std::cin >> x) {
            std::cout << "Entered Number: " << x << std::endl;
        } else if (std::cin >> y) {
            std::cout << "Entered word: " << y << std::endl;
        } else {
            break;
        }
    }
    if (std::cin.eof()) {
        std::cout << "End of input detected." << std::endl;
    } else {
        std::cout << "Error occurred." << std::endl;
    }

    return 0;
}

輸出

以下是以上程式碼的輸出:

Input : asde123

Error occurred.
ios.htm
廣告