thoát chức năng không trả về trong C++ được sử dụng để chấm dứt chương trình. Trường hợp chúng tôi chấm dứt một chương trình theo hai cách, chấm dứt bình thường và chấm dứt bất thường.
Thông thường, hàm exit() báo cáo hệ điều hành mà chương trình đó có thực hiện thực thi thành công hay không. hàm exit()
chấm dứt chương trình bằng mã lỗi trong đó 0 cho biết kết thúc bình thường và không phải zero cho biết chấm dứt bất thường. Chấm dứt bất thường có liên quan đến tràn dữ liệu, kích thước vượt quá, hoạt động tệp không đầy đủ, v.v.
trước khi chấm dứt Chương trình thực hiện việc dọn dẹp sau đây,exit()
- Chấm dứt quá trình gọi.
- Đóng tất cả các tệp.
- gọi chức năng đã đăng ký (nếu có).
exit()
Unction được định nghĩa trong tệp tiêu đề và quy trình trong chương trình. Do đó, chúng ta phải bao gồm các tệp tiêu đề của chúng trong chương trình.stdlib
Đây là cú pháp,
exit(error-code);
trong đó mã lỗi cho biết kết thúc Chương trình bình thường hoặc bất thường, thông thường 0 cho biết bình thường và giá trị khác cho biết kết thúc bất thường.
Tuy nhiên, chúng ta cũng có thể sử dụng hai hằng số sau, được xác định trong các tệp tiêu đề và stdlib
process
- EXIT_SUCCESS, đại diện bằng số không
- EXIT_FAILURE, đại diện bởi none-zero
Như
exit(0) hoặc exit(EXIT_SUCCESS) | cho biết kết thúc chương trình bình thường |
exit(1) hoặc exit(EXIT_FAILURE) | cho biết việc chấm dứt chương trình bất thường |
Ở đây chúng tôi sẽ chấm dứt chương trình trong một bình thường và bất thường. Hai ví dụ đầu tiên sau đây là chấm dứt bất thường,
Sơ đồ dòng chảy của câu lệnh thoát trong C++
Như bạn có thể thấy trong sơ đồ trên, khi thực thi đi đến khối thoát, chương trình sẽ ngay lập tức thoát hoặc chấm dứt và phần còn lại của khối mã (các câu lệnh bổ sung trong chương trình) sẽ bỏ qua.
Hãy thử với một ví dụ ở đây,
Ví dụ về exit trong C++
Trong Chương trình sau, chúng tôi đang cố gắng mở một tệp ở chế độ đọc (lớp ifstream),
#include<process>
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
ifstream fin;
fin.open("file.txt");
if(!fin) // test for an error on the stream
{
cout<<"File can't open...\n"; // display an error message
getch();
exit(EXIT_FAILURE);
}
else {
cout<<"statement never executed...";
}
fin.close();
}
RA
File can't open...
Giải thích:
Chương trình cố gắng mở một tệp để đọc nhưng không có tệp nào tồn tại để đọc. Vì vậy, ở đây một lỗi thực thi thất bại phát sinh.
Đây là một ví dụ khác,
nơi chúng tôi làm việc với đồ họa, trước khi thực hiện tác vụ, chúng tôi sẽ kiểm tra đồ họa có phản hồi hay không,
#include <graphics>
#include <stdlib>
#include <stdio>
#include<iostream>
using namespace std;
int main()
{
int gdriver = DETECT, gmode, error_code;
initgraph(&gdriver, &gmode, "");
error_code = graphresult();
if(error_code != grOk)// check graphic driver responding or not
{
cout<<"Graphics error:\n"<<grapherrormsg(error_code);
getch();
exit(EXIT_FAILURE); // report Execution failure
}
// draw a line
line(0, 0, getmaxx(), getmaxy());
closegraph();
}
RA
Graphic Error:
Device driver file not found (EGAVGA.BGI)
Bây giờ hãy thực hiện chấm dứt bình thường trong các chương trình sau,
Trong Chương trình sau, chúng tôi thực hiện chấm dứt chương trình bình thường sẽ phụ thuộc vào đầu vào của người dùng.
#include<iostream>
#include<stdlib>
using namespace std;
int main()
{
int num1,num2;
for(int i=0; i>=0; i++) //infinite loop
{
cout<<"Enter Two number: ";
cin>>num1>>num2;
if(!num1||!num2) {
cout<<"Program Exiting...";
exit(0); // EXIT_SUCCESS
}
else
cout<<"sum: "<<num1+num2;
return 0;
}
}
OUTPUT
Enter number: 3 6
sum 9
Enter number: 2 5
sum 7
Enter number: 0 3
Program Exiting...
Explanation
as soon as the value of one of the two variables is 0, the program performs normal exit. below flow-diagram is the demonstration of the above codes.
Example of exit() in a menu-driven program
In the below program we exiting from a menu-driven,
#include<iostream>
#include<stdlib>
using namespace std;
int input();
int input()
{
int value;
cout<<"Enter Degree: ";
cin>>value;
return value;
}
int main()
{
int select,result;
do{
clrscr();
cout<<"1> celsius To Fahrenheit\n";
cout<<"2> Fahrenheit To Celsius\n";
cout<<"3> Celsius To Kelvin\n";
cout<<"4> Kelvin To Celsius\n";
cout<<"5> Fahrenheit To Kelvin\n";
cout<<"0> Exit\n\n";
cin>>select;
switch(select) {
case 1:
result=(input()*9/5)+32;
cout<<result<<"f";
break;
case 2:
result=(input()-32)*5/9;
cout<<result<<"c";
break;
case 3:
result=input()+273;
cout<<result<<"k";
break;
case 4:
result=input()-273;
cout<<result<<"c";
break;
case 5:
result=(input()+459)*5/9;
cout<<result<<"k";
break;
case 0: exit(0);
default:
cout<<"Not available..";
}
}while(select!=0);
}
RA
Enter degree: 212
100c
sự khác biệt giữa câu lệnh break và exit trong C++
Nói một cách đơn giản, một hàm luôn được sử dụng để chấm dứt toàn bộ chương trình trong khi chỉ chấm dứt câu lệnh duy nhất.exit()
break
Tuyên bố ngắt | Tuyên bố thoát |
---|---|
cú pháp: break; |
exit(int error_code): |
break là một từ khóa. |
Là một chức năng thư viện tiêu chuẩnexit |
Nó được sử dụng để thoát khỏi các câu lệnh kiểm soát khác. (tuyên bố chấm dứt kiểm soát, không phải chương trình) | Nó được sử dụng để thoát khỏi chương trình. (chấm dứt toàn bộ chương trình). |
Chấm dứt một tuyên bố kiểm soát luôn là một thực hiện thành công. | Nó có hai, chấm dứt thành công và chấm dứt thất bại của một chương trình. |
Sau khi nghỉ thực hiện, các chương trình vẫn còn trong quá trình thực hiện. | Sau khi chương trình thực thi thoát chấm dứt. |
Chúng tôi không cần bất kỳ tệp tiêu đề nào trước khi sử dụng Break. | Trước khi sử dụng, chúng ta phải bao gồm tệp tiêu đề của nó hoặc trong chương trìnhexit() stdlib process |
đây là một hàm ví dụ khác với câu lệnh switch trong C ++, nơi chúng tôi cung cấp cho menu một tùy chọn thoát.
previous – Câu lệnh goto C ++
next- mảng trong C++
Kết luận
Tóm lại, lệnh “exit” trong C++ là một cách để kết thúc chương trình một cách đột ngột. Tuy nhiên, việc sử dụng lệnh này cần thận trọng để tránh các vấn đề về tài nguyên, ổn định và bảo mật. Thay vào đó, nên xem xét các phương pháp khác để kiểm soát và kết thúc chương trình một cách an toàn hơn.
Mong rằng với những chia sẻ của Hướng dẫn học C++ về lệnh “Exit” trong c++ có thể giúp các bạn hiểu thêm về nó.