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++ 控制台程序在完成前关闭。的主要内容,如果未能解决你的问题,请参考以下文章