爲什麼我運行程序後窗口一閃而過就沒了

對於控制檯程序,操作系統讓它開始運行前會爲它造一個控制檯窗口,在它結束的時候爲它銷燬這個這窗口.所以,當程序的最後一條語句運行完後,沒什麼可做了,程序運行結束,窗口就沒了
一般做法有這些:
     getchar()可以等待你輸入一個字符,這樣可以讓程序等待在那
     system("pause")執行系統的pause命令,它也會等你
另外還有個特殊的:
       如果你是在IDE裏編寫完了程序,想要看運行結果,那你可以按Ctrl+F5來運行程序,那樣即使你不使用上面的兩條語句,也可以看見程序運行完後窗口沒有消失  


       這是爲什麼呢?

       對於普通的做法,即按F5,IDE會直接啓動編譯成的exe,這和你雙擊一個exe啓動它是等效的,而對於Ctrl+F5,IDE做的事有些不一樣,它會去啓動cmd.exe,也就是什麼 命令提示符 那個程序,然後告訴它去運行編譯好的程序.cmd.exe的行爲是這樣的,它啓動其它程序時會把自己的這個控制檯(它自己也是個控制檯程序)借給這個程序使用,你的程序運行起來後就向這個控制檯打印東西.等你的程序運行結束了,cmd.exe再得回控制權.注意,這時你的程序結束了,但cmd.exe還沒有結束.而cmd.exe有個行爲,就是會在它所啓動的程序運行完後等待用戶按個鍵.也就是你看見的"請按任意鍵繼續..",或是"Press any key to continue..",顯然,這行字並不是你的程序打印的
對於這點,你可以自己啓動cmd.exe試試
       最後..雖然getchar和system("pause")效果看上去一樣,但是..system("pause")是很浪費的,是大材小用.使用getchar()就行了.至於爲什麼這樣,這裏就不解釋了


頭文件 <stdlib.h>
然後再 return 之前 加上 system("pause")//這是調用系統 操作,這句話是現實系統信息,這樣的話,程序會在這條語句上運行 在DOS界面顯示系統信息,達到了暫停的作用 ,按回車鍵 會 繼續執行下一句話,如果加載最後就會
退出 程序了~
</pre><pre id="answer-content-487131439" class="answer-text mb-10" style="WORD-WRAP: break-word; MARGIN-BOTTOM: 10px; FONT-SIZE: 14px; FONT-FAMILY: arial,'courier new',courier,宋體,monospace; WHITE-SPACE: pre-wrap; COLOR: rgb(51,51,51); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN-TOP: 0px; LINE-HEIGHT: 24px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255)" name="code">
<pre id="answer-content-487141846" class="answer-text mb-10" style="WORD-WRAP: break-word; MARGIN-BOTTOM: 10px; FONT-SIZE: 14px; FONT-FAMILY: arial,'courier new',courier,宋體,monospace; WHITE-SPACE: pre-wrap; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN-TOP: 0px; LINE-HEIGHT: 24px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(255,255,255)" sizcache="27" sizset="64" name="code"><u sizcache="27" sizset="64"><strong sizcache="27" sizset="64"><span sizcache="27" sizset="64" style="color:#cc0000;">直接雙擊.exe文件窗口一閃而過這是正常的,因爲它屬<a target=_blank class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=MS-DOS&fr=qb_search_exp&ie=utf8" rel="nofollow" target="_blank">MS-DOS</a>應用程序,而非windows應用程序。要想讓其停留,只要讓程序陷入等待狀態就行了,例如等待輸入,在程序最後加一句
cin >> a;(a變量須申明)</span></strong></u>
<u><strong><span style="color:#cc0000;">
</span></strong></u>
<pre id="best-content-1221065472" class="best-text mb-10" style="WORD-WRAP: break-word; MARGIN-BOTTOM: 10px; FONT-SIZE: 14px; FONT-FAMILY: arial,'courier new',courier,宋體,monospace; WHITE-SPACE: pre-wrap; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN-TOP: 0px; LINE-HEIGHT: 24px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(241,254,221)" name="code"><span style="color:#cc0000;"><strong><u>或者還有方法是:</u></strong></span>
<pre id="best-content-1221065472" class="best-text mb-10" style="WORD-WRAP: break-word; MARGIN-BOTTOM: 10px; FONT-SIZE: 14px; FONT-FAMILY: arial,'courier new',courier,宋體,monospace; WHITE-SPACE: pre-wrap; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN-TOP: 0px; LINE-HEIGHT: 24px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(241,254,221)" sizcache="27" sizset="65" name="code"><span sizcache="27" sizset="65" style="color:#cc0000;"><strong sizcache="27" sizset="65"><u sizcache="27" sizset="65"><a target=_blank class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=getchar()&fr=qb_search_exp&ie=utf8" rel="nofollow" target="_blank">getchar()</a>(); //等待輸入回車再結束</u></strong></span>
<span style="color:#cc0000;"><strong><u>因爲你的運行窗口在程序一結束就關閉了,所以要加一個等待鍵,才能保證窗口不關閉</u></strong></span>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章