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

时间:2012-12-26 18:39:10

标签: c++ windows eclipse macos

我安装了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这让我烦恼不已)。 期待您的回复!

4 个答案:

答案 0 :(得分:2)

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

您可能需要查看以下内容:

What is the Best Practice for Combating the Console Closing Issue?

https://superuser.com/questions/186562/how-can-i-keep-the-terminal-open

答案 1 :(得分:1)

请勿使用system("pause"),因为多种原因而错了(请详细了解here)。

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

答案 2 :(得分:1)

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

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

不应该干涉你的程序在另一个平台上采取不同的行为,而是将其包装成“适应”行为的东西。

也许你可以告诉eclipse使用“cmd /c'yourprogram.exe&amp;&amp; pause'”,打开命令窗口让它执行你的程序然后暂停。

答案 3 :(得分:0)

只需在返回前添加refresh_token_expires_in,然后添加getch();