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

标签 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;
}

我想知道为什么?

最佳答案

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

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

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

关于c++ - 应用程序在显示最终输出之前结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54122554/

相关文章:

c++ - 线参数的大小

c - 为什么 Visual Studio 2010 两次包含头文件?

c++ - 我怎样才能 "unelevate"一个进程

c++ - 如何在 make 下用多个文件编译 dlib?

c++ - 如何从运算符函数返回动态对象?

winapi - 如何在 Win32 C++ 程序在后台运行时检测按键

c++ - Visual C++ 2010 Express 中的 "Unresolved External"错误

c++ - 如何使用 Visual Studio 2010 在 Windows 上使用 Open MPI 构建 boost::mpi 库

c++ - 如果 SDL_BlitSurface 中的 src 和 dest 相同会发生什么?

c++ - 用于多态调用的 x86-64 汇编器