最近,我一直试图从这个网站学习c++。不幸的是,每当我试图运行其中一个代码示例时,我看到该程序打开了大约半秒钟,然后立即关闭。有没有办法阻止程序立即关闭,以便我能看到我的努力的成果?


当前回答

你也可以试着这样做

sleep (50000);
cout << "any text" << endl;

这将保存您的代码50000m,然后打印消息并关闭。但请记住,它不会永远暂停。

其他回答

在代码结束之前,插入这行代码:

system("pause");

这将保持控制台,直到你按下一个键。

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    cout << "Please enter your first name followed by a newline\n";
    cin >> s;
    cout << "Hello, " << s << '\n';
    system("pause"); // <----------------------------------
    return 0; // This return statement isn't necessary
}

如果你正在使用微软的Visual c++ 2010 Express,并遇到CTRL+F5无法在程序终止后保持控制台打开的问题,请查看这个MSDN线程。

可能你的IDE被设置在CTRL+F5运行后关闭控制台;事实上,Visual c++ 2010中的“空项目”默认关闭控制台。要改变这一点,请按照微软版主的建议执行:

请右键单击您的项目名称,进入属性页面,展开配置属性->连接器->系统,在子系统下拉菜单中选择控制台(/子系统:控制台)。因为,在默认情况下,Empty项目不指定它。

包括conio.h,在代码的末尾,在返回0之前,写入_getch();

我只是这样做:

//clear buffer, wait for input to close program
std::cin.clear(); std::cin.ignore(INT_MAX, '\n');
std::cin.get();
return 0;

注意:只有在程序早期使用过cin时,才需要清除cin缓冲区。同样使用std::numeric_limits::max()可能比INT_MAX更好,但它有点啰嗦,通常没有必要。

和你的答案相似,只是极简主义的选择。

创建一个包含以下内容的批处理文件:

helloworld.exe
pause

然后使用批处理文件。