C++ cin.ignore:跳過鍵盤緩衝區N個字元

2020-07-16 10:04:38
cin.ignore 函數告訴 cin 物件跳過鍵盤緩衝區中的一個或多個字元。以下是它的一般形式:

cin.ignore(n, c);

括號中顯示的引數是可選的。如果使用,則 n 是一個整數,c 是一個字元。它們告訴 cin 跳過 n 個字元,或直到遇到字元 c。

例如,以下語句會導致 cin 跳過接下來的 20 個字元,或者直到遇到換行符,以先到者為準:

cin.ignore(20,'n')

如果沒有使用引數,則只會跳過下一個字元。以下是其範例:

cin.ignore();

在學習 cin.get 時,對於cin>>和 cin.get 語句混合使用時發生的問題,可以通過在 cin >> 語句之後插入一個 cin.ignore 語句來避免,如下所示(這會導致 cin>> 遺留下來的換行符被繞過,強制 cin.get 等待使用者輸入另一個字元):
cout << "Enter a number: ";
cin >> number;
cin.ignore ();    //跳過換行符
cout << "Enter a character: ";
cin.get(ch);
cout << "Thank You!" << endl;