【问题标题】:C++ console program closing before completion.C++ 控制台程序在完成前关闭。
【发布时间】: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 ;
}

【问题讨论】:

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

标签: c++ windows console


【解决方案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)

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 2011-12-27
      • 2016-01-31
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多