C++中 while(cin>> i)當碰到EOF(文件結束標記)循環會終止,而一般從鍵盤輸入EOF是按下Ctrl+Z。


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

 

cin>>a返回也是一個stream,所以while()就是判斷這個stream的狀態,鑒於你的a是int類型,因此上面的while循環,退出的方法有2個:
1) 輸入任意一個非int類型的值,比如字母s或符號!什么的都可退出循環,繼續執行。
2)標准的EOF,在Windows上面就是ctrl-c,xNix上是ctrl-d。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM