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