Windows上的C 在启动后立即关闭程序

C++ on windows closes a program immediately after launching

本文关键字:关闭程序 启动 上的 Windows      更新时间:2023-10-16

我安装了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有所不同,以及我可以做些什么来修复它(BC这会使我烦恼)。期待您的答复!

这在Windows上发生,因为这只是Windows控制台的行为。如果您不希望窗口执行后,则必须手动打开控制台,然后通过打开的控制台运行程序。

您可能想看看这些:

打击控制台关闭问题的最佳做法是什么?

https://superuser.com/questions/186562/how-can-i---------------------------------------

不要使用system("pause"),出于多种原因是错误的(在此处阅读更多有关)。

cin.get()放在return之前,窗口将保持打开状态,直到您按Enter。

如果您只想运行控制台程序,则应该打开控制台,然后运行它。

显然,Eclipse的OSX版本被配置为打开控制台并运行程序,而不是关闭程序。也许您也可以配置Win版本。

不应该介入您的程序以在另一个平台上以不同的方式行为,而是将其包裹在"适应"行为的事物中。

可能,您可以告诉Eclipse使用" cmd/c'your program.exe&amp;&amp; pause'",打开命令窗口并让其执行您的程序然后暂停。

返回之前只添加 getch();,然后添加 #include <conio.h>