簡體   English   中英

Windows 8上的C ++啟動后立即關閉程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM