2

我安装了 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 不同,以及我能做些什么来修复它(这让我很恼火)。期待您的回复!

4

4 回答 4

2

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

你可能想看看这些:

解决控制台关闭问题的最佳实践是什么?

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

于 2012-12-26T18:44:48.003 回答
1

不要使用system("pause"),由于多种原因,它是错误的(在此处阅读更多信息)。

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

于 2012-12-26T18:45:25.673 回答
1

如果你只想运行你的控制台程序,你应该打开一个控制台,然后运行它。

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

不应该干预您的程序以在另一个平台上表现不同,而是将其包装成“适应”行为的东西。

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

于 2012-12-26T18:46:02.647 回答
0

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

于 2015-06-14T07:06:51.580 回答