我刚开始学习C ++并且我从文本中编写了这个示例程序,当我编译并运行它时,它只是在用户输入任何数字并按下回车后关闭。我猜这个问题的答案是非常明显的,所以请原谅我这里的新手....这真的是我的第一个C ++程序:P
#include <iostream>
using namespace std;
int main ()
{
int numberOfLanguages;
cout << "Hello Reader.\n"
<< "Welcome to C++.\n"
cout << "How many programming languages have you used? ";
cin >> numberOfLanguages;
if(numberOfLanguages < 1)
cout << "Read the preface. You may prefer.\n"
<< "a more elementary book by the same author.\n";
else
cout << "Enjoy the book.\n";
return 0;
}
答案 0 :(得分:15)
想象一下,您正在为应用程序执行设计模型。你有两个选择:
A)当程序结束时,它将终止。
B)当程序结束时,程序将在某种奇怪的状态下保持活跃状态。它仍将保留系统资源,实际上不会做任何事情,但为了关闭用户必须明确地终止它。
我想任何人都会选择A,这就是你所看到的。已到达main
的结尾,您的程序将退出。
如果你希望它在最后停顿,请从用户那里得到一些输入,即
char c;
std::cin >> c;
return 0;
答案 1 :(得分:6)
该计划结束,因为该计划没有更多内容。它真的非常快地输出最终语句,然后到达return 0
,导致它退出。你想在那里做些什么来暂停程序。
在Windows上,执行该操作的基本方法是system("pause");
(您需要#include <stdlib.h>
)
cin.getline
是一种更标准的方法。
答案 2 :(得分:6)
它关闭,因为执行到达return 0;
并且没有什么可做的。
如果您希望程序在关闭前等待,可以添加如下内容:
cout << "Press enter to exit...";
cin >> someVarThatWontBeUsed;
您也可以从命令行运行该程序,而不是运行.exe。无论如何它都会到达执行结束但提示将保持打开状态。
答案 3 :(得分:5)
您的程序在打印完文本后立即结束。如果您想在屏幕上看到任何内容,可以在cin
之前添加return 0
,以便您的程序在退出前等待用户响应。
// Wait for user to hit enter
cin >> dummyVar;
return 0;
答案 4 :(得分:3)
要么从cin
再次读取以等待用户,要么自己打开命令提示符并在那里运行。
答案 5 :(得分:2)
您发布的程序有错误。我无法编译你发布的内容。
cout << "Hello Reader.\n"
<< "Welcome to C++.\n"
不以分号结尾。我添加了一个分号,它可以按照您的预期进行编译和运行。
编辑:当然,您必须在程序退出后保持打开的终端中运行程序,或使用cin等待更多输入,或类似的东西。
答案 6 :(得分:0)
用户输入一个保存到numberOfLanguages
的号码后,它会从return 0
函数返回main
,从而程序结束。