1. 程式人生 > >【C++】while(cin>>str); 和 getline(cin,line,'#');

【C++】while(cin>>str); 和 getline(cin,line,'#');

跳出迴圈:ctrl+z(先按enter鍵後ctrl+z)

Ctrl+z並不會產生一個普通的ASCII碼值,也就是說它不會產生一個字元,不會被放到輸入緩衝區中,所以讀不到它,你輸入了就好像木有輸入一樣,它只能作為結束迴圈來用。
還有在Windows系統中,只有按下回車才會去檢測之前有沒有按下Ctrl+z,才會去檢測流是否結束。就是在按下回車之前,輸入緩衝區並不能檢測到是否有Ctrl+z按下,所以即使按了Ctrl+z,照樣還可以從鍵盤去輸入內容,但是Ctrl+z這行輸入的內容到時候並不會被讀取到,因為在緩衝區檢測時,如果檢測到Ctrl+z(結束標誌),就會認為輸入流結束了,那麼後邊的內容就不會被讀進去,而被丟掉。

while(getline(cin,line));