C++ 系统(“暂停”)或保持“窗口”打开()?
我正在阅读编程原理和实践2ed。在Hello World程序中,他们使用了一行,C++ 系统(“暂停”)或保持“窗口”打开()?,c++,C++,我正在阅读编程原理和实践2ed。在Hello World程序中,他们使用了一行,keep\u window\u open() 在找到这本书之前,我学习了同样的Hello World程序,但使用了system(“暂停”) 我的问题如下: 保持窗口打开()和系统(“暂停”)实际上是同一件事,还是不同 如果它们在功能上基本相同,那么是否有理由使用一个而不是另一个?如果是,何时以及为什么 如果它们不同,那么保持窗口打开()不赞成使用系统(“暂停”),反之亦然?(更简单的术语:哪一个更适合常规使用?) 如
keep\u window\u open()
在找到这本书之前,我学习了同样的Hello World程序,但使用了system(“暂停”)
我的问题如下:
保持窗口打开()
和系统(“暂停”)
实际上是同一件事,还是不同保持窗口打开()
不赞成使用系统(“暂停”)
,反之亦然?(更简单的术语:哪一个更适合常规使用?)keep_window_open()
仍在使用中,它是否是std
命名空间的一部分,需要将其写入std::keep_window_open()
以便在不使用命名空间std的情况下使用代码>
保持窗口打开()
和系统(“暂停”)
实际上是同一件事,还是不同
它们有一个等价的用例(在输入用户输入之前阻止调用过程),但它们以不同的方式处理
system(“PAUSE”)
生成一个单独的进程来运行操作系统的命令行处理器,并让它执行PAUSE
命令,该命令将消息输出到控制台,然后阻止调用进程,直到输入用户输入
keep_window_open()
不使用单独的进程,它只是使用std::cout
和std::cin
显示控制台消息,然后等待用户输入,所有这些都在调用进程中(显示实际实现)
如果它们在功能上基本相同,那么是否有理由使用一个而不是另一个?如果是,何时以及为什么
system(“PAUSE”)
依赖于平台,因为它依赖于存在的操作系统处理器,并且该处理器执行PAUSE
命令
<代码> KeEpWielWOWOPEN()/<代码>使用标准C++特性。
如果它们不同,那么保持窗口打开()
不赞成使用系统(“暂停”)
,反之亦然
我想,您应该使用保持窗口打开()
,因为它依赖于标准行为,而不依赖于运行代码的平台。但是,如果您的代码运行在支持它的平台上,那么使用系统(“暂停”)
并没有什么问题
如果keep\u window\u open()
仍在使用,它是否是std
命名空间的一部分
<代码> KeEpWielWOWOPEN()/<代码>不是C++的一部分,它只是一本介绍在书中的简单用户定义函数。因此,它不是
std
名称空间的一部分。有关如何实现keep\u window\u open()
的信息,请参阅<代码>系统(“暂停”)和 KEPEXWOWOWOPEN()/CUT>是等价的,但它们以不同的方式完成了相同的事情(等待用户输入)。<代码> KeEPyWOWOWOPEN()/<代码>不是标准C++的一部分。这是Stroustrup为他的书设计的,你只能使用它,因为你包含了随书分发的std_lib_facilities.h
。@Remylebau不,它们不是等价的。这两种方法都旨在实现相同的目标,但是系统(“暂停”)
依赖于平台,保持窗口打开()
不是(并且只使用标准的依赖方式)。FWIW,如果您试图做的只是在程序完成后立即停止命令行窗口关闭,可以在main中的最后一行代码上放置断点,使其停止。这样,您就不需要编辑代码来删除暂停。@NicholasJarecki不,断点是一种IDE/调试器工具,它允许您将一行代码标记为一个点,以便它在到达时停止执行。在调试过程中经常使用它,以使代码在某些点停止,这样您就可以看到代码中的内容的价值。