亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

系統(“暫停”);-為什么會出錯?

系統(“暫停”);-為什么會出錯?

C++
嗶嗶one 2019-06-03 16:10:22
系統(“暫?!?;-為什么會出錯?以下是一個我不太明白的問題:指揮部,system("pause");作為暫停程序并等待鍵盤輸入繼續的一種方式,向新程序員講授。然而,許多資深程序員似乎對此不屑一顧,認為不應該在不同程度上這樣做。有些人說它可以使用。有人說只有當你被鎖在房間里而沒有人看的時候才能使用。有人說如果你用它,他們會親自來你家殺了你。我,我自己是一個新的程序員,沒有正規的編程培訓。我用它是因為我被教導要使用它。我不明白的是,如果它不是可以使用的東西,那么為什么我被教會使用它呢?或者,從另一方面來說,它真的沒有那么糟糕嗎?你對這個問題有什么看法?
查看完整描述

4 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

人們對此不屑一顧,因為它是一種特定于平臺的黑客攻擊,與實際學習編程無關,而是為了繞過IDE/OS的一個特性-從VisualStudio啟動的控制臺窗口在程序執行完畢后關閉,因此新用戶無法看到他的新程序的輸出。

安裝在系統(“暫?!?運行Windows命令行“暫?!背绦颍⒌却K止,然后它繼續執行程序-控制臺窗口保持打開,以便您可以讀取輸出。

更好的方法是在最后放置一個斷點并對其進行調試,但這同樣存在問題。


查看完整回答
反對 回復 2019-06-03
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

太慢了。它依賴于平臺。不安全。

第一:它能做什么。調用“system”就像在windows命令提示符中鍵入命令一樣。對于您的應用程序來說,要進行這樣的調用需要大量的設置和拆卸-而開銷簡直是荒謬的。

如果一個名為“暫?!钡某绦虮环胖玫接脩舻穆窂街心兀恐皇钦{用系統(“暫?!?只保證一個名為“暫停”的程序被執行(希望你沒有你的可執行文件名為“暫?!?!)

只需編寫您自己的使用_Getch的“暫停()”函數即可。好的,當然,_Getch也依賴于平臺(注意:它是在“conio.h”中定義的)-但是它比system()如果您正在Windows上進行開發,并且它具有相同的效果(盡管向文本提供cout之類的內容是您的責任)。

基本上:既然您可以簡單地添加兩行代碼,其中一行包含并獲得更靈活的機制,那么為什么要引入這么多潛在的問題呢?


查看完整回答
反對 回復 2019-06-03
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

  • Slow:它必須跳過許多不必要的Windows代碼和一個單獨的程序來進行簡單的操作
  • 不可移植的:依賴于暫停程序
  • 不好的方式:系統調用只能在

    真的

    必要
  • 更多的輸入:System(“暫?!?比getchar()更長

簡單的getchar()應該做得很好。


查看完整回答
反對 回復 2019-06-03
  • 4 回答
  • 0 關注
  • 716 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號