非常基本的C ++程序在用户输入后没有特殊原因关闭?

时间:2011-07-03 01:48:04

标签: c++

我刚开始学习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;
}

7 个答案:

答案 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,从而程序结束。