[英]using getch() to hold command prompt open Visual C++ 2010
我目前正在从一本名为“Ivor Hortons Beginning Visual c ++ 2010”的书中学习c ++。
在我迄今尝试的所有示例中,我必须使用getch()来保持打开命令提示符,有时会从main方法的末尾删除return 0语句。
这是Windows 7的变幻莫测,是否会导致问题进一步发展? 这样做是没有问题的,但由于这不包括在书中,我想知道是否可能是我设置错了。
非常感谢 :)
使用_getch()代替getch()
getch()
不是特定于操作系统的,但它不是直接可移植的。 在C++
执行此操作的首选方法是使用std::cin.get();
。
main
函数可以隐式return 0
(您不需要实际拥有该代码,请参阅下文)。
int main()
{
// valid, return 0 implied.
}
有关从main
隐式return 0
更多详细信息,请参阅此问题 。
当程序结束时,该程序创建的任何资源(包括终端窗口)都将被释放。 通过使用getch可以防止程序结束。 这是正常行为,应该继续以这种方式工作,直到Windows是一个遥远的记忆。
如果从现有命令窗口中启动程序,则窗口不会关闭,因为它不是由程序创建的。
首先, getch()
不是标准的C或C ++函数。 即使在Windows下,我认为它的使用已被弃用; 它的语义可以追溯到CP / M和早期的MS-DOS。
其次,它确实没有必要,至少不适用于控制台应用程序(我认为它不适用于非控制台应用程序)。 如果从控制台窗口运行程序,则窗口保持打开状态。 如果你是从Visual Studios运行它,那么在return语句上设置一个断点是很简单的,它会阻止程序,并保持窗口打开(尽管IDE没有理由因为你的程序已经终止而关闭它)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.