首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >系统(“暂停”)还是keep_window_open()?

系统(“暂停”)还是keep_window_open()?
EN

Stack Overflow用户
提问于 2021-01-20 19:26:49
回答 1查看 195关注 0票数 0

我正在阅读编程原理和实践2ed.,在Hello程序中,他们使用一行keep_window_open()

在找到这本书之前,我学习了同样的Hello程序,但是使用了system("PAUSE")

我的问题如下:

  1. keep_window_open()system("PAUSE")实际上是一回事,还是它们不同?如果它们在功能上基本相同,那么是否有理由使用一个而另一个?如果是,什么时候?为什么?
  2. ,如果它们不同,那么keep_window_open()是不赞成system("PAUSE"),还是相反?(更简单的术语:哪些是常用的?)
  3. 如果keep_window_open()仍在使用,它是否是std名称空间的一部分,而不是需要将其编写为std::keep_window_open()才能不使用keep_window_open()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-20 19:42:43

keep_window_open()system("PAUSE")实际上是一回事,还是它们不同?

它们有一个等价的用例(在输入用户输入之前阻止调用过程),但它们以不同的方式来处理它。

system("PAUSE")生成一个单独的进程来运行OS的命令行处理器,并让它执行一个PAUSE命令,该命令将消息输出到控制台,然后阻塞调用进程,直到输入用户输入为止。

keep_window_open()不使用单独的进程,它只使用std::coutstd::cin显示控制台消息,然后等待用户输入,全部在调用过程中(this answer显示实际实现)。

如果它们在功能上基本上是相同的,那么是否有理由使用一个而另一个呢?如果是,什么时候和为什么?

system("PAUSE")依赖于平台,因为它依赖于一个操作系统处理器,以及那个实现PAUSE命令的处理器。

keep_window_open()使用标准的C++特性。

--如果它们不同,那么keep_window_open()是否支持system("PAUSE"),反之亦然?

IMHO,您应该使用keep_window_open(),因为它依赖于独立于运行代码的平台的标准行为。但是,如果您的代码运行在支持system("PAUSE")的平台上,那么使用它并没有什么问题。

如果keep_window_open()仍在使用,它是否是std命名空间的一部分?

keep_window_open()不是C++的一部分,它只是本书中介绍的一个简单的用户定义函数。所以不,它不是std命名空间的一部分。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65816297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档