aort()与exit()

本文详细介绍了C++中用于程序终止的两个函数:exit()和abort()。exit()通常用于正常退出,允许进行清理工作并返回一个退出状态码;而abort()则用于异常终止,不进行任何收尾操作,直接终止程序并显示异常信息。通过案例展示了如何根据退出状态码判断程序执行问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

exit和abort函数,其功能都是终止程序的执行,将流程控制返回给操作系统。通常,exit用于正常终止程序的执行,abort用于异常终止程序的执行。

1.exit

exit用于正常终止程序的执行。

exit(表达式)

其中,表达式的值只能是整型数。通常把表达式的值作为终止程序执行的原因。
执行该函数时,将无条件地终止程序的执行而不管该函数处于程序中的什么位置,并将控制返回给操作系统。通常表达式的取值为一个常数:用0表示正常退出,用其他整数值作为异常退出的原因

当执行exit()函数时,系统要做终止程序执行前的收尾工作,如关闭该程序打开的文件,释放变量所占用的存储空间(不包含动态分配的存储空间);

...
    exit(0);
...

//输出:...、cpp\Debug\cpp.exe (进程 4068)已退出,代码为 0。

...
    exit(1);
...

//输出:...\cpp\Debug\cpp.exe (进程 17704)已退出,代码为 1。

...
...
    exit(10);
...
//输出:...\cpp\Debug\cpp.exe (进程 17704)已退出,代码为 10。

所以可以设置不同的返回来判断程序执行过程中所出现的问题。

#include<iostream>
using namespace std;
int main()
{
	int m = 0;
	cin >> m;
	switch (m)
	{
	case 1:
	{
		cerr << "错误1" << endl;
		exit(1);
		break;
	}
	case 2:
	{
		cerr << "错误2" << endl;
		exit(2);
		break;
	}
	default:
	{
		cout << "正常结束" << endl;
		exit(0);
		break;
	}
		
	}
	return 0;
}

2.abort()

调用该函数时,括号内不能有任何参数。其作用是向标准错误流(std::cerr)发送程序异常终止的消息,然后终止程序。
在执行该函数时,系统不做结束程序前的收尾工作,直接终止程序的执行。

...

abort();
...

调用后弹出窗口:
请添加图片描述

3.conclusion

  • 共同点:两者均是终止程序的执行。
  • 异同点:

exit():

  1. exit带参,通常用0表示正常退出,其他整型表示异常退出。
  2. exit用于正常终止程序的执行,abort用于异常终止程序的执行。
  3. exit调用后将无条件地终止程序的执行,并且需要做结束程序前的收尾工作。

abort():

  1. abort不带参数;
  2. abort系统不做结束程序前的收尾工作,直接终止程序的执行;
  3. abort执行时,会弹出调用abort()被调用的弹窗。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值