《知識問答》如何解決算法第四版中StdIn isEmpty的死循環?

一樓:小新,落魄。

我讀這本書的時候,也遇到了這個問題。如果我讀完了文件的結尾,我會繼續讀下去,因為返回的總是真的。有一個不可避免的方法。在文件末尾添加一個自定義標記,並寫兩次這個標記。第一次讀取標記時,可以直接返回false,這樣就可以完整的讀取文件的原始內容,不會陷入無休止的循環。註意寫兩遍記號,不然我還是死無止境。

二樓:

這是Eclipse的一個歷史bug,參考什麼是文件/流鍵盤組合的結尾來配合系統使用。在Eclipse CDT控制臺中讀入()和傳遞傳輸結束(ctrl+d)字符。

不確定您應該按哪個鍵來終止Eclipse中的控制臺。您可以在配置的鍵中搜索eof視圖。

反正我在Mac上的Eclipse在運行你的循環的時候是收不到ctrl d傳輸的EOF的。即使我在上面的鏈接中嘗試了各種方法,在執行書中的雙棧算術程序時,也能正確接收到EOF。

個人建議程序可以執行終止,命令行編譯執行也可以,不要太糾結這個工具相關的問題。畢竟,我們應該學習算法,而不是Eclipse,對嗎?