1 #include <iostream>
2
3 using namespace std;
4
5 int main() {
6 double d;
7 char c;
8 cin >> d;
9 if(!cin) {
10 cout << "x" << endl;
11 cin.clear();
12 cout << cin.get() << endl;
13 }
14 // cin.get();
15 cin.get(c);
16 }
以上代碼輸入分為2種情況:
若輸入為double類型,則cin.get(c)會讀取換行符,程序運行結束。
若輸入為非double類型,如char類型,則cin會置錯誤位,保留錯誤輸入的同時丟棄回車符(現象如此,原因猜測),所以程序在運行到cin.get(c)時候會停止等待輸入。
奇怪,又測試了幾次,感覺和之前一樣,程序運行結束。