这可能是一个令人尴尬的问题,因为答案无疑是显而易见的。

我已经使用Visual Studio很多年了,但这是我第一次做任何“控制台应用程序”开发。

当我运行我的应用程序时,控制台窗口弹出,程序输出出现,然后当应用程序退出时窗口关闭。

是否有一种方法可以让它一直打开直到我检查输出,或者在窗口关闭后查看结果?


当前回答

下面是C/ c++的一种方法:

#include <stdlib.h>

#ifdef _WIN32
    #define WINPAUSE system("pause")
#endif

把它放在程序的顶部,如果它是在Windows系统上(#ifdef _WIN32),那么它将创建一个名为WINPAUSE的宏。当你想让程序暂停时,调用WINPAUSE;它将使用DOS命令暂停程序。对于Unix/Linux等其他系统,控制台不应该在程序退出时退出。

其他回答

一个更好的解决方案:

atexit([] { system("PAUSE"); });

在程序开始的时候。

优点:

可以使用std::exit() 可以从主有多个返回 您可以在调试器下运行程序 IDE独立(+ OS独立,如果你使用cin.sync();cin.ignore ();Trick而不是system("pause");)

缺点:

必须修改代码 不会暂停std::terminate() 仍然会发生在IDE/调试器会话之外的程序中;你可以在Windows下使用:


extern "C" int __stdcall IsDebuggerPresent(void);
int main(int argc, char** argv) {
    if (IsDebuggerPresent())
        atexit([] {system("PAUSE"); });
    ...
}

Visual Studio 2015,带有导入。因为我讨厌 当代码示例没有给出所需的导入时。

#include <iostream>;

int main()
{
    getchar();
    return 0;
}

在项目属性的调试部分的命令参数框中添加“| pause”。

右键单击您的项目

属性>配置属性>连接器>系统

在子系统选项中选择控制台(/子系统:控制台),或者你可以在文本字段中输入控制台!

现在试试……应该可以

如果你运行时没有调试(Ctrl+F5),那么默认情况下它会提示你按回车键关闭窗口。如果要使用调试器,应在最后一行上放置断点。