C++程序设计基础(上)
上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章。