C++ 控制台程序在完成前关闭。

Posted

技术标签:

【中文标题】C++ 控制台程序在完成前关闭。【英文标题】:C++ console program closing before completion. 【发布时间】:2013-10-09 18:26:04 【问题描述】:

我的程序是一个简单的求和器。我将在最后发布的代码。 但它要求第一个数字。输入后,它会要求您输入第二个号码。 输入第二个数字后,控制台窗口会在显示结果之前关闭。当我第一次在 Visual C++ 2010 中构建和测试时,它运行良好,但仅在从构建位置运行 .exe 时才会出现此问题。有什么建议吗?

这是代码如果你自己测试请重新组装:

#include "stdafx.h" // for Visual Studio users
#include <iostream>

int main()

  using namespace std;   
  int no1, no2, sum ;

  cout << "\nEnter the first number = " ;
  cin >> no1 ;

  cout << "\nEnter the Second number = " ;
  cin >> no2 ;

  sum = no1 + no2 ;

  cout << "\nThe sum of "<< no1 <<" and "<< no2 <<" = "<< sum  ; 

  return 0 ;

【问题讨论】:

打开一个控制台窗口,通过输入命令行从那里运行程序。程序退出后,控制台窗口将保持打开状态。这就是控制台程序的设计运行方式。 正如约翰所说。结果正在显示。但这就是程序的结束,所以窗口在你看到它之前就关闭了。你可以在程序结束时睡一会儿,我敢打赌你会用总和抓住窗口。 【参考方案1】:

在您满意之前保持控制台打开的一种方法是在其末尾添加一个 cin - 在关闭之前,它将等待用户关闭它或输入一行输入。

【讨论】:

你的答案我可以使用 cin.clear(); cin.ignore(255, '\n'); cin.get();【参考方案2】:

这是因为程序运行结束后窗口关闭。使用std::cin.get() 让窗口在等待输入时保持打开状态:

int main()

    // ...
    std::cin.get(); // keep the window open; wait for a character
    return 0;

【讨论】:

感谢您的明确答复。我能够使用 cin.clear(); cin.ignore(255, '\n'); cin.get() @user2864157 没问题。很高兴我能帮上忙。 :)【参考方案3】:

在return 0前添加cin.get();

【讨论】:

【参考方案4】:

控制台应用程序实际上旨在直接从控制台执行。如果您直接在其上运行它们,则在程序完成后,您将留下控制台窗口,其中包含程序给出的所有输出。 另外,你会更习惯于使用命令提示符,这有时很酷也很有用。 :-D

如果您对如何在 Windows 环境中从控制台运行程序有任何疑问,请查看this answer (Compiling C-code from the Command Prompt in Windows?) 或this one (How to run a c program using command prompt)。

【讨论】:

以上是关于C++ 控制台程序在完成前关闭。的主要内容,如果未能解决你的问题,请参考以下文章

关闭 C++ 控制台应用程序时会发生啥

异步调用完成前控制台应用程序终止

如何配置 Codeblocks 在程序完成后不关闭控制台?

程序完成后如何防止控制台关闭?

如何阻止 C++ 控制台应用程序立即退出?

一旦程序完成并在 1 次击键后关闭,是不是有办法让控制台窗口保持打开状态?