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


当前回答

使用#include "stdafx.h" & system("pause");就像下面的代码一样。

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    std::cout << "hello programmer!\n\nEnter 2 numbers: ";
    int x, y;
    std::cin >> x >> y;
    int w = x*y;
    std::cout <<"\nyour answer is: "<< w << endl;
    system("pause");
}

其他回答

你可以只创建一个批处理文件。例如,如果你的程序名为helloworld.exe,一些代码将是:

@echo off
:1
cls
call helloworld.exe
pause >nul
goto :1

简单地把它放在代码的末尾:

而(1){}

这个函数将一直运行下去(或者直到您关闭控制台为止),并将防止控制台自己关闭。

这里有个问题,不太明显。不知怎么的,我在程序的最后一行添加了一个调试断点。不知道我是怎么做到的,可能是在不同屏幕之间跳跃时错误地点击了鼠标。我在VS Code工作。

当我进行调试时,系统立即跳转到那个断点。没有错误消息,没有临时输出,什么都没有。我就想,程序是怎么通过我设置的所有断点的?我花了太长时间才想明白。

显然,系统将最后一行断点视为“第一个”停止。简单的解决方法?删除断点,哎呀!(此处插入前额。)

查看您的IDE在项目设置中是否有一个复选框,以便在程序终止后保持窗口打开。如果不是,使用std::cin.get();读取主函数末尾的一个字符。但是,请确保只使用基于行的输入(std::getline)或处理剩余的未读字符(std::ignore until newline),否则末尾的.get()将只读取之前未读的垃圾。

如果您从一个合格的IDE(如code::Blocks)运行代码,IDE将管理它用来运行代码的控制台,在应用程序关闭时保持打开状态。您不希望添加特殊的代码来保持控制台的打开状态,因为这将阻止它在IDE之外实际使用时正常工作。