使用getch()来保持命令提示符打开Visual C ++ 2010

时间:2011-09-21 15:29:58

标签: c++ visual-studio-2010 visual-c++ console-application

我目前正在从一本名为“Ivor Hortons Beginning Visual c ++ 2010”的书中学习c ++。

在我尝试过的所有示例中,我必须使用getch()来保持打开命令提示符,有时会从main方法的末尾删除return 0语句。

这是否是Windows 7的变幻莫测,是否会引发问题?这样做是没有问题的,但由于这不包含在书中,我想知道这是否是我设置错误的。

非常感谢:)

4 个答案:

答案 0 :(得分:2)

使用_getch()代替getch()

答案 1 :(得分:1)

getch()不是特定于操作系统的,但它不是直接可移植的。在C++中执行此操作的首选方法是使用std::cin.get();

main函数可以隐式return 0(您不需要实际拥有该代码,请参阅下文)。

int main()
{
   // valid, return 0 implied.
}

有关return 0隐式main的详细信息,请参阅this question

答案 2 :(得分:1)

当程序结束时,该程序创建的任何资源(包括终端窗口)都将被释放。通过使用getch可以防止程序结束。这是正常行为,应该继续以这种方式工作,直到Windows成为远程记忆。

如果从现有的命令窗口启动程序,该窗口将关闭,因为它不是由程序创建的。

答案 3 :(得分:0)

首先,getch()不是标准的C或C ++函数。甚至在 Windows,我认为它的使用已被弃用;它的语义可以追溯到CP / M. 和早期的MS-DOS。

其次,它确实没有必要,至少不适用于控制台应用程序(和 我认为它不适用于非控制台应用程序)。如果你在跑 从控制台窗口打开程序,窗口保持打开状态。如果你是的话 从Visual Studios运行它,在它上面设置一个断点是微不足道的 return语句,它阻止程序,并保持窗口打开 (虽然IDE真的没有理由关闭它只是因为 你的程序已经终止)。