C++关闭程序的方法
C++ Ways to shut down a program
在你开始在我身上浪费时间之前,请记住,这个问题更多的是关于知道这次关闭是否足够合法。
好吧。
我读过各种关闭程序的方法。我知道这总是最好的关闭程序,在最后!所以,正如我所说,我阅读了各种各样的主题,但我真的找不到一个我能正确理解的。所以我想出了自己的办法。我只是想确保这是一个好方法。
int main()
{
cout << "Welcome to my fantastic program!" << endl;
cout << "You're the first one to experience my command program!" << endl;
cout << "Let's try with a simple command. Try typing help" << endl;
while (running == 1) {
commands();
if (running == 0) {
exit(0);
}
}
return 0;
}
所以我想让你专注于while循环。这是我的方法。
void commands()
{
cin >> command;
if (command == "help")
{
cout << "-------------------------------" << endl;
cout << "-this is the <HELP> section----" << endl;
cout << "-exit (exits the program.)" << endl;
cout << "-Stay tuned for more commands--" << endl;
cout << "-------------------------------" << endl;
}
else if (command == "exit")
{
running = 0;
}
else
{
cout << "The command does not exist: " << command << endl;
}
}
这是我的命令功能。如您所见,这会将"running"更改为0(或false)。我希望我能理解这一点。
谢谢。
编辑:我只想知道,如果这是一个好的方法:)
最终版本:好吧!我将"退出(0);"更改为"返回(0)!"。所以我想这是一个不错的方法!谢谢你的帮助!:)
在程序中使用exit()
是合法的。尽管这通常是个坏主意。但是,如果程序由于某种奇怪的原因而无法返回,你可以这样做。
在main()
中使用exit
是不礼貌的:我只是想不出一个合理的理由不使用return。
exit()和return from main之间的区别在于,前者将使从main到调用点的堆栈帧中的所有本地对象挂起,而不调用析构函数。只有静态/全局对象才能正确关闭。它可能会让代码的某些部分感到惊讶,并使重要的事情没有完成。
由于C++有很好的例外,我认为最好将exit()替换为抛出一些管理到main的东西,在main中会发生定期返回。
if (running == 0)
但毫无意义!
while (running == 1) {
commands();
}
return 0;
做同样的事情——一旦运行为0,它就会掉到循环的底部,main就会返回。全局running
的整个想法都进入了副作用编程,这是一件坏事!
给定问题exit()中的边界条件,执行您想要的操作。它正常终止进程,为终止程序执行定期清理(atexit(),在没有自动存储的情况下销毁对象等)。
您并不真的想使用全局运行,所以我建议检查commands()的返回参数。
比如
int commands()
{
if(wanna_exit)
return 1;
else
return 0;
}
如果由于某种原因,您不能让commands()中断while循环(例如,通过检查return参数并将running设置为0(如果它是1)),并且您想立即退出程序,而不是完成while循环的其余部分的求值,那么exit()是可以的(尽管在这种特殊情况下,return更好(因为您在示例中处于main))。尽量避免以全球化的身份参选——现在可能看起来很无辜,但以后可能会变得刻薄:)。
- 如何在 qt 中从另一个线程运行 qt并发时关闭程序
- 类指针方法崩溃程序
- 如何在程序崩溃时关闭程序,没有任何警告屏幕等.C++窗口
- QT-从QDialog(MainWindow满载之前)关闭程序
- Gtkmm 3/C++,使用按钮而不是窗口关闭程序"X"
- c ++ Win32 API GetMessage 关闭程序在线程内
- nofify_all()关闭程序时会崩溃
- 每项分辨率的自动关闭程序
- Windows上的C 在启动后立即关闭程序
- 在QT中关闭程序之前,请显示对话框
- 有没有一种非重复的方法允许程序员在成员初始化的复制和移动语义之间进行选择
- 用x关闭程序时内存泄漏
- 在不关闭程序的情况下写入文件后,从文件中获取保存的数据
- Qt:关闭模式对话框关闭程序
- 如何在用户输入字符并按回车键后关闭程序
- 视觉C++ - 在我关闭程序之前,ofstream 不会输出到文件
- C 使用 Y/N 选项循环开关。选择 N 不会关闭程序
- C++关闭程序的方法
- 类的实例只允许1个方法或程序崩溃
- 防止Ctrl-C关闭程序