我正在做一个控制台应用程序以进行培训。 当我调试以下代码时,它会在显示
之前自行关闭 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;
}
我想知道为什么吗?
答案 0 :(得分:1)
在最后一个std::cout
之后,没有任何事情可以阻止控制台关闭。
当您更改std::cout
的位置时,后面会出现一个输入语句。因此,控制台等待输入继续执行。
通过在最后一个return语句处添加断点或在return语句之前添加空白输入,可以轻松地防止控制台关闭。
您可能还需要检查调试器设置,以查看是否选中了“调试停止时自动关闭控制台”。 (在“工具”>“选项”>“调试”中)