在 C++ 程序中暂停控制台的最佳方法是什么?
- 使用
cin.get()
- 或使用
system("pause")
- 或使用 C 函数,如
getch()
或getchar()
?
使用 system("pause")
是否会导致代码不可移植,无法在 UNIX 中工作?
cin.get() 更适合用来暂停控制台吗?
最佳答案
可能有最好的方法(比如使用可移植的cin.get()
),但没有好的方法 .完成工作的程序应该退出并将其资源还给计算机。
是的,任何 system()
的使用都会导致代码不可移植,因为参数会传递给拥有您的进程的 shell。
在源代码中包含暂停代码迟早会导致麻烦:
- 有人在签到前忘记删除暂停代码
- 现在所有的工作伙伴都想知道为什么应用程序不再关闭了
- 版本历史被污染
#define
是 hell- 对于从控制台运行您的代码的人来说,这很烦人
- 尝试从脚本中启动和结束程序时非常、非常、非常烦人;如果您的程序是 shell 中管道的一部分,则非常烦人,因为如果程序没有结束,shell 脚本或管道也不会结束
相反,探索您的 IDE。它可能有一个选项在运行后不关闭控制台窗口。如果没有,作为一个物有所值的开发者,在附近始终打开一个控制台窗口是一个很好的理由。
或者,您可以将此设置为程序选项,但我个人从未见过带有选项--keep-alive-when-dead
的程序。
故事的寓意:这是用户的问题,而不是程序的问题。不要污染你的代码。
关于c++ - C++ 程序中的暂停控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24776262/