[英]C++ on windows 8 closes a program immediately after launching
我安裝了minGW和eclipse CDT,控制台一直在做一些奇怪的事情。 該程序的代碼是
using namespace std;
#include <iostream>
int main() {
cout << "Hello, windows (8, c++)" << endl;
//system("PAUSE");
return 0;
}
大家都知道,它是Hello World程序。 現在,當我運行此命令時,Eclipse控制台會顯示一些有關構建的內容,然后變為空白。 當我在瀏覽器中導航到HelloWorldProgram.exe並運行它時,一個窗口閃爍並顯示“ hello world”,但隨后立即關閉。 當我在Mac OSX上執行此操作時,沒有問題,並且直到我決定關閉它之前,窗口一直處於關閉狀態。 現在我知道有一個命令
system("PAUSE") //I dont know what I need to import to use this. Could you tell me that too?
這或多或少會給我帶來相同的效果,但是我想知道Windows為什么將它與OSX區別開來,以及我可以做些什么來解決它(這使我煩惱了)。 期待您的答復!
在Windows上會發生這種情況,因為這只是Windows控制台的行為。 如果您不希望在程序執行后自動關閉窗口,則必須手動打開控制台,然后通過打開的控制台運行程序。
您可能想看看這些:
https://superuser.com/questions/186562/how-can-i-keep-the-terminal-open
不要使用system("pause")
,由於多種原因,這是錯誤的( 在此處了解更多信息)。
將cin.get()
放在return
之前,窗口將保持打開狀態,直到您按Enter鍵為止。
如果只想運行控制台程序,則應打開一個控制台並運行它。
顯然,OSX版本的Eclipse配置為打開控制台,然后運行該程序,而不關閉它。 也許您也可以配置Win版本。
您不應該干預您的程序以在另一個平台上以不同的方式表現 ,而應將其包裝為“適應”行為的東西。
可能,您可以告訴eclipse使用“ cmd / c'yourprogram.exe && pause'”,打開命令窗口,讓其執行您的程序,然后暫停。
只需添加getch();
返回之前,添加#include <conio.h>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.