溫馨提示×

c++使用ignore怎樣跳過無效內(nèi)容

c++
小樊
81
2024-09-25 03:16:13
欄目: 編程語言

在C++中,如果你想要在讀取輸入時跳過無效的內(nèi)容,可以使用std::cin.ignore()函數(shù)。這個函數(shù)可以忽略掉輸入流中直到指定字符為止的所有字符。

下面是一個簡單的例子,演示了如何使用std::cin.ignore()來跳過無效內(nèi)容:

#include <iostream>
#include <limits>

int main() {
    int num;
    std::string str;

    while (true) {
        std::cout << "請輸入一個整數(shù)(輸入q退出):";
        if (std::cin >> num) {
            // 處理有效的整數(shù)輸入
            std::cout << "你輸入的整數(shù)是:" << num << std::endl;
            break;
        } else {
            // 如果輸入不是整數(shù),則忽略無效的內(nèi)容
            std::cin.clear();  // 清除錯誤標志
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');  // 忽略無效的內(nèi)容
            std::cout << "輸入無效,請重新輸入!" << std::endl;
        }
    }

    while (true) {
        std::cout << "請輸入一個字符串(輸入q退出):";
        std::getline(std::cin, str);
        if (str == "q") {
            break;
        }
        // 處理有效的字符串輸入
        std::cout << "你輸入的字符串是:" << str << std::endl;
    }

    return 0;
}

在這個例子中,如果用戶輸入了非整數(shù)的字符,程序會使用std::cin.ignore()來忽略這些無效的內(nèi)容,并提示用戶重新輸入。同樣地,如果用戶輸入了非字符串的內(nèi)容(例如整數(shù)),程序也會使用std::cin.ignore()來忽略這些無效的內(nèi)容。

0