我想我的c++代码停止运行,如果某个条件得到满足,但我不知道如何做到这一点。因此,在任何时候,如果if语句为真,就像这样终止代码:
if (x==1)
{
kill code;
}
我想我的c++代码停止运行,如果某个条件得到满足,但我不知道如何做到这一点。因此,在任何时候,如果if语句为真,就像这样终止代码:
if (x==1)
{
kill code;
}
当前回答
返回0;把它放在int main()中任何你想要的位置,程序将立即关闭。
其他回答
人们常说“调用退出(返回代码)”,但这是不好的形式。在小程序中是可以的,但是有一些问题:
您最终将从程序中获得多个退出点 它使代码更加复杂(比如使用goto) 它不能释放在运行时分配的内存
实际上,你唯一应该退出这个问题的时候是main.cpp中的这一行:
return 0;
如果您正在使用exit()来处理错误,那么您应该了解异常(以及嵌套异常),这是一种更加优雅和安全的方法。
超出调用exit(error_code)——调用退出处理程序,但不调用RAII析构函数等。 -我越来越多地使用异常。
我的主程序越来越像
int main(int argc, char** argv)
{
try {
exit( secondary_main(argc, argv );
}
catch(...) {
// optionally, print something like "unexpected or unknown exception caught by main"
exit(1);
}
}
在secondary_main 所有原本放东西的地方 例如,原来的main被重命名为secondary_main,上面的存根main被添加。 这只是一个细节,这样在main中的tray和catch之间就不会有太多的代码。
如果需要,可以捕获其他异常类型。 我很喜欢捕捉字符串错误类型,比如std::string或char*,然后打印出来 在main中的catch处理程序中。
使用这样的异常至少允许调用RAII析构函数,这样它们就可以进行清理。这可能是愉快和有用的。
总的来说,C错误处理-退出和信号-和c++错误处理-尝试/捕获/抛出异常-在最好的情况下不一致地一起发挥作用。
然后,检测到错误
throw "error message"
或者一些更特定的异常类型。
通常,您将使用具有适当退出状态的exit()方法。
零意味着成功运行。非零状态表示发生了某种问题。父进程(例如shell脚本)使用此退出码来确定进程是否成功运行。
当执行流到达主函数的末尾时,程序将终止。
要在此之前终止它,可以使用exit(int status)函数,其中status是返回到启动程序的值。0通常表示非错误状态
返回0;把它放在int main()中任何你想要的位置,程序将立即关闭。