上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.9 终止程序执行
return 语句可以终止函数的执行。此外,C++提供了多种终止程序执行的方式。这里介绍几个常用的函数。
1.abort函数
函数原型:void abort(void);
功能:中断程序的执行,返回C++系统的主窗口。该函数在stdlib头文件声明。
【例3-41】abort函数测试。
#include<iostream> using namespace std; #include<cstdlib> int main() { int a,b; cout << "a, b = "; cin >> a >> b; if (b == 0) { cout<<"除数为零!"<<endl; abort(); } else cout<<a/b<<endl; }
2.assert函数
函数原型:void assert(int expression);
功能:计算表达式expression的值,若该值为false,则中断程序的执行,显示中断执行所在文件和程序行,返回C++系统的主窗口。该函数在assert文件声明。
【例3-42】assert函数测试。
#include<iostream> using namespace std; #include<cassert> void analyzeScore(int s);
int main() { const int max=100; const int min = 0; int score; cout << "input a score : "; cin >> score; analyzeScore(score); cout << "the score is effective.\n"; } //测试,当score<0或score>100时终止程序,并报告出错位置 void analyzeScore(int s) { assert(s>=0); //score<0时终止程序 assert(s<=100); //score>100时终止程序 }
3.exit函数
函数原型:void exit(int status);
功能:中断程序的执行,返回退出代码,回到C++系统的主窗口。该函数在stdlib头文件中声明。其中,参数 status 是整型常量,终止程序时把它作为退出代码返回操作系统,C++看不到exit的返回值。通常为0或1。
【例3-43】exit函数测试。
#include<iostream> using namespace std; #include <conio.h> #include <cstdlib> int main() { int ch; _cputs("Yes or no? "); ch = _getch(); _cputs("\n"); if (toupper(ch) == 'Y') { _cputs("Yes.\n"); exit(1); } else { _cputs("N0.\n"); exit(0); } }
abort、assert、exit这些函数都会直接退出整个应用程序,通常用于处理系统的异常错误。C++还有一套处理异常的结构化方法,具体见第12章。