cin.ignore():C++跳過(忽略)指定字元

2020-07-16 10:05:23
ignore() 是 istream 類的成員函數,它的原型是:

istream & ignore(int n =1, int delim = EOF);

此函數的作用是跳過輸入流中的 n 個字元,或跳過 delim 及其之前的所有字元,哪個條件先滿足就按哪個執行。兩個引數都有預設值,因此 cin.ignore() 就等效於 cin.ignore(1, EOF), 即跳過一個字元。

該函數常用於跳過輸入中的無用部分,以便提取有用的部分。例如,輸入的電話號碼形式是Tel:63652823Tel:就是無用的內容。例如下面的程式:
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin.ignore(5, 'A');
    cin >> n;
    cout << n;
    return 0;
}
程式的執行過程可能如下:

abcde34↙
34

cin.ignore() 跳過了輸入中的前 5 個字元,其餘內容被當作整數輸入 n 中。

該程式的執行過程也可能如下:

abA34↙
34

cin.ignore() 跳過了輸入中的 'A' 及其前面的字元,其餘內容被當作整數輸入 n 中。