2012-07-23 33 views
0

我在測試如何cin.get作品嚐試不同的東西,來到了這個謎:只有按下回車鍵時,cin.get發生了什麼?

char input[5]; 
int value; 

cout << "enter something:"; 
cin.get(input,5); 
cout << input; 

cin.ignore(); 
cin.get(); // this never fires with only enter 

如果我輸入的東西,它會暫停在最後cin.get。如果我只是返回,它不會觸發最後一個cin.get並關閉。只是好奇到底發生了什麼。

回答

1

如果cin.get()不能讀取任何內容,它將設置失敗位,所以下一個cin.get()也會失敗。

如果您希望下一個cin.get()工作,必須首先調用cin.clear()來清除故障位。

ps。有關詳細說明,請檢查here

相關問題