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
广告