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


当前回答

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

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
}

其他回答

我只是这样做:

//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

然后使用批处理文件。

这似乎很有效:

cin.clear();
cin.ignore(2);

如果您先清除缓冲区,那么当您读取下一个缓冲区时就不会有问题。 由于某些原因,sin .ignore(1)不起作用,它必须是2。

我使用cin.get(),这是有效的,但有一天我需要使用另一个cin。get([数组变量])之前获取一个中间有空白字符的ling字符串。因此,cin.get()并没有避免命令提示符窗口关闭。最后我找到了另一种方法: 按CTRL+F5在外部窗口中打开,Visual Studio不再对其进行控制。只会在最后的命令运行后询问关闭。

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

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
}