哪个是在C++程序中暂停控制台的最佳方法?
cin.get()system("pause")getch()或等的C函数getchar()?使用system("pause")导致非可移植代码并且无法在UNIX中运行是真的吗?
cin.get()最好用于暂停控制台吗?
Seb*_*ach 59
可能有一种最好的方式(比如使用便携式cin.get()),但不存在好方法.完成其工作的程序应该退出并将其资源返回给计算机.
是的,任何使用system()导致不可移植的代码,因为参数传递给拥有您的进程的shell.
迟早会在源代码中使用暂停代码会导致麻烦:
#define 太棒了相反,探索您的IDE.它可能有一个选项,在运行后不关闭控制台窗口.如果没有,作为开发人员,值得她/他的钱总是在附近打开一个控制台窗口,这是一个很好的理由.
或者,您可以将其设为程序选项,但我个人从未见过带有选项的程序--keep-alive-when-dead.
故事的道德:这是用户的问题,而不是程序的问题.不要污染你的代码.
Mr.*_*C64 16
如果你想编写可移植的C++代码,那么我建议使用cin.get().
system("PAUSE")适用于Windows,因为它需要执行名为" PAUSE" 的控制台命令.但我不确定Linux或其他Unix衍生产品等其他操作系统是否支持这一点.所以这往往是不便携的.
由于C++已经提供cin.get(),我认为使用C没有令人信服的理由getch().
在最好的方式在很大程度上取决于该平台(一个或多个)作为目标,调试与发布使用等
我认为没有最好的方法,但要以相当通用的方式“强制”等待输入类型场景,尤其是在调试时(通常这是基于NDEBUG或编译进或出_DEBUG),您可以尝试std::getline如下
inline void wait_on_enter()
{
std::string dummy;
std::cout << "Enter to continue..." << std::endl;
std::getline(std::cin, dummy);
}
Run Code Online (Sandbox Code Playgroud)
根据需要,我们没有“输入继续”。
| 归档时间: |
|
| 查看次数: |
217580 次 |
| 最近记录: |