溫馨提示×

C++輸入流的錯誤檢測

c++
小樊
81
2024-11-08 23:25:25
欄目: 編程語言

在C++中,輸入流(如cin)的錯誤檢測主要通過檢查其狀態(tài)來實現(xiàn)。當(dāng)輸入流遇到錯誤或達到文件末尾時,它的狀態(tài)會發(fā)生變化。我們可以使用std::istream類中的fail()eof()成員函數(shù)來檢測這些錯誤。

下面是一個簡單的示例,展示了如何使用fail()eof()檢測輸入流中的錯誤:

#include <iostream>
#include <limits>

int main() {
    int number;
    std::cin >> number;

    // 檢查輸入流是否遇到錯誤
    if (std::cin.fail()) {
        std::cout << "Error: Invalid input." << std::endl;
        // 清除錯誤標(biāo)志
        std::cin.clear();

        // 檢查是否到達文件末尾
        if (std::cin.eof()) {
            std::cout << "Error: End of file reached." << std::endl;
        } else {
            std::cout << "Error: Input not recognized." << std::endl;
        }
    } else {
        std::cout << "The number is: " << number << std::endl;
    }

    return 0;
}

在這個示例中,我們首先嘗試從標(biāo)準輸入讀取一個整數(shù)。如果輸入流遇到錯誤或到達文件末尾,fail()函數(shù)將返回true。接下來,我們可以使用eof()函數(shù)來檢查是否到達了文件末尾。如果fail()返回trueeof()返回false,則表示輸入未正確識別。

注意,在檢測到錯誤后,我們需要使用clear()函數(shù)清除錯誤標(biāo)志,以便再次嘗試讀取輸入。

0