3 回答

TA貢獻1777條經(jīng)驗 獲得超3個贊
許多人建議使用POSIX sleep,Windows Sleep,Windows system("pause"),C ++ cin.get()…… getch()大約在1920年代后期,甚至還有一個DOS 。
請不要做任何這些。
這些解決方案都無法通過我的團隊的代碼審查。這意味著,如果您提交此代碼以將其包含在我們的產(chǎn)品中,則會阻止您的提交,并且將被告知您去尋找其他解決方案。(有人可能會爭辯說,當(dāng)您只是一個業(yè)余愛好者時,事情并沒有那么嚴(yán)重,但是我建議您在寵物項目中養(yǎng)成良好的習(xí)慣將使您成為商業(yè)組織中的重要專家,并保持您的錄用。 )
使控制臺窗口保持打開狀態(tài),以便您可以讀取程序的輸出,這不是程序的責(zé)任!當(dāng)在程序末尾添加一個wait / sleep / block時,就違反了單一責(zé)任原則,造成了巨大的抽象泄漏,并破壞了程序的可重用性/可鏈接性。它不再需要輸入并提供輸出-出于臨時使用的原因而阻塞。這是非常不好的。
相反,您應(yīng)該配置環(huán)境以在程序完成工作后保持提示打開。您的批處理腳本包裝器是一個好方法!我可以看到必須手動進行更新會很煩人,并且您無法從IDE調(diào)用它。您可以使腳本將程序的路徑作為參數(shù)執(zhí)行,并配置您的IDE以直接調(diào)用它而不是直接調(diào)用程序。
一種臨時的快速啟動方法是將IDE的run命令從cmd.exe <myprogram>或更改<myprogram>為cmd.exe /K <myprogram>。該/K開關(guān)cmd.exe 品牌在給定的路徑程序后提示保持打開狀態(tài)已經(jīng)終止。這將比您的Batch腳本解決方案稍微麻煩一些,因為現(xiàn)在您必須exit在完成讀取程序輸出后鍵入或單擊紅色的“ X”,而不是僅僅花一些空格鍵。
我假定使用的是IDE,因為否則您已經(jīng)從命令提示符中調(diào)用了,那么這首先不會成為問題。此外,我假設(shè)使用Windows(根據(jù)問題中提供的詳細信息),但是此答案適用于任何平臺……順便說一句,只有一半。
- 3 回答
- 0 關(guān)注
- 374 瀏覽
添加回答
舉報