C++ IOS::good() 函数



C++ 的std::ios::good() 函数是 std::ios 类的一个成员函数,它是输入/输出流库的一部分。此函数检查 I/O 流的状态,以确定它是否处于良好状态(没有发生错误)或不处于良好状态。如果它处于良好状态,则返回 true,否则返回 false。

语法

以下是 std::ios::good() 函数的语法。

bool good() const;

参数

它不接受任何参数。

返回值

如果条件成立,则返回 true,否则返回 false。

异常

如果抛出异常,则流中没有任何更改。

数据竞争

访问流对象。

并发访问同一个流对象可能会导致数据竞争。

示例

在以下示例中,我们将检查标准输入流。

#include <iostream>
int main()
{
    std::cout << "Enter A Number : ";
    int x;
    std::cin >> x;
    if (std::cin.good()) {
        std::cout << "Entered Number Is : " << x << "\n";
    } else {
        std::cout << "Input Not Found.\n";
    }
    return 0;
}

输出

以上代码的输出如下:

Enter A Number : 123
Entered Number Is : 123

示例

考虑以下示例,我们将要求用户输入两个整数。如果两个输入都成功,则 good() 返回 true。

#include <iostream>
int main()
{
    std::cout << "Enter two integers: ";
    int x, y;
    std::cin >> x >> y;
    if (std::cin.good()) {
        std::cout << "Sum: " << x + y << std::endl;
    } else {
        std::cout << "Error." << std::endl;
    }
    return 0;
}

输出

以下是以上代码的输出:

Enter two integers: 1 2
Sum: 3

示例

让我们看以下示例,我们将读取单个语句中的多种类型的输入。

#include <iostream>
int main()
{
    std::cout << "Input : ";
    int x;
    std::string y;
    std::cin >> x >> y;
    if (std::cin.good()) {
        std::cout << "Number: " << x << ", String: " << y << std::endl;
    } else {
        std::cout << "Input error." << std::endl;
    }
    return 0;
}

输出

如果我们运行以上代码,它将生成以下输出:

Input : 1TP
Number: 1, String: TP
ios.htm
广告