应用程序在显示最终输出之前结束

时间:2019-01-10 05:44:24

标签: c++ visual-c++-2010

我正在做一个控制台应用程序以进行培训。 当我调试以下代码时,它会在显示

之前自行关闭
 std::cout << e <<  std::endl;

如果我将整数e及其输出移到std::cout << "Enter a number:";之前,它将正常工作,但是当如下所示列出时,只有其输入起作用,并且控制台将自行关闭。

#include "stdafx.h"
#include <iostream>

int raisemath()
{
    std::cout << "Enter an integer: "; // ask user for an integer
    int a; // allocate a variable to hold the user input
    std::cin >> a; // get user input from console and store in variable a
    return a; // return this value to the function's caller (main)
}
int main()
{
    int number;
    std::cout << "Enter a number:";
    std::cin >> number;
    std::cout << "You entered " << number << std::endl;
    int e = raisemath();    
    std::cout << e << std::endl;
    return 0;
}

我想知道为什么吗?

1 个答案:

答案 0 :(得分:1)

在最后一个std::cout之后,没有任何事情可以阻止控制台关闭。
当您更改std::cout的位置时,后面会出现一个输入语句。因此,控制台等待输入继续执行。

通过在最后一个return语句处添加断点或在return语句之前添加空白输入,可以轻松地防止控制台关闭。

您可能还需要检查调试器设置,以查看是否选中了“调试停止时自动关闭控制台”。 (在“工具”>“选项”>“调试”中)