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)時候會停止等待輸入。
奇怪,又測試了幾次,感覺和之前一樣,程序運行結束。