Saya ingin tahu bagaimana dan kapan saya bisa menggunakan exit()
fungsi seperti program di buku saya:
#include<stdio.h>
void main()
{
int goals;
printf("enter number of goals scored");
scanf("%d",&goals);
if(goals<=5)
goto sos;
else
{
printf("hehe");
exit( );
}
sos:
printf("to err is human");
}
Ketika saya menjalankannya, itu menunjukkan ERROR: panggilan ke fungsi yang tidak ditentukan exit () .
Juga, saya ingin tahu bagaimana saya bisa membuat opsi untuk menutup jendela di mana program berjalan? Misalnya, saya membuat program berbasis menu yang memiliki beberapa pilihan dan salah satunya adalah "keluar dari menu" . Bagaimana saya bisa membuat ini keluar dari program (yaitu menutup jendela)?
void main()
OTOH benar-benar salah . Sama sepertiexit();
yang salah, dan menghilangkan#include <stdlib.h>
itu salah.Jawaban:
Coba gunakan
exit(0);
sebagai gantinya. Theexit
Fungsi mengharapkan parameter integer. Dan jangan lupa#include <stdlib.h>
.sumber
The
exit
fungsi dideklarasikan di header stdlib, sehingga Anda perlu memilikidi bagian atas program Anda agar dapat digunakan
exit
.Perhatikan juga bahwa
exit
membutuhkan argumen integer, jadi Anda tidak bisa menyebutnya sepertiexit()
, Anda harus memanggil sebagaiexit(0)
atauexit(42)
. 0 biasanya berarti program Anda berhasil diselesaikan, dan nilai bukan nol digunakan sebagai kode kesalahan.Ada juga makro yang ditentukan sebelumnya
EXIT_SUCCESS
danEXIT_FAILURE
, misalnyaexit(EXIT_SUCCESS);
sumber
exit
membutuhkan argumen integer, tetapi menjelaskan mengapa dibutuhkan argumen integer dan bahwa beberapa kompiler membutuhkan eksplisit#include <stdlib.h>
.exit(int code);
dideklarasikanstdlib.h
sehingga Anda membutuhkan fileJuga:
- Anda tidak memiliki parameter untuk
exit()
itu, itu membutuhkan satuint
jadi sediakan satu.- Bakar buku ini, yang digunakannya
goto
(untuk semua orang kecuali peretas kernel linux) buruk, sangat, sangat , SANGAT buruk.Edit:
Oh, dan
juga buruk, itu:
sumber
goto
kadang-kadang adalah hal yang benar untuk dilakukan (dan kernel Linux menyediakan banyak contoh, tetapi ini bukan satu-satunya kode yang dapat menggunakannya). Tapi contoh OP jelas bukan salah satu kasus itu, jadi ya, buku itu harus dibakar :).Coba keluar pria .
Oh, dan:
sumber
The
exit()
Fungsi adalah jenis fungsi dengan tipe kembali tanpa argumen. Ini ditentukan oleh file header stdlib.Anda perlu menggunakan
( exit(0) or exit(EXIT_SUCCESS))
atau(exit(non-zero)
atauexit(EXIT_FAILURE) )
.sumber
Contoh berikut menunjukkan penggunaan
exit()
fungsi.Keluaran
sumber
Anda harus menambahkan baris dengan
#include <stdlib.h>
untuk memasukkan file header danexit
harus mengembalikan nilai jadi tetapkan beberapa integerexit(any_integer)
.sumber
Selain mengembalikan kode keluar ke proses induk -
Dalam UNIX, aspek penting yang menurut saya telah ditinggalkan adalah, bahwa exit () pada panggilan pertama (dalam urutan terbalik) semua fungsi tersebut, yang didaftarkan oleh panggilan atexit ().
Silakan merujuk ke SUSv4 untuk detailnya.
sumber
di unix seperti sistem operasi, keluar milik grup panggilan sistem. panggilan sistem adalah panggilan khusus yang memungkinkan kode pengguna (kode Anda) untuk memanggil kode kernel. jadi panggilan keluar membuat beberapa tindakan pembersihan khusus OS sebelum mengembalikan kontrol ke OS, itu menghentikan program.
Beberapa kompiler akan memberi Anda opcode yang sama dari kedua contoh ini tetapi beberapa tidak. Misalnya, opcode dari fungsi pertama tidak akan menyertakan opcode pemosisian tumpukan apa pun yang akan disertakan dalam contoh kedua seperti untuk fungsi lainnya. Anda dapat mengumpulkan kedua contoh dan membongkar dan Anda akan melihat perbedaannya.
Anda dapat menggunakan keluar dari bagian mana pun dari kode Anda dan pastikan proses itu berhenti. Jangan lupa untuk memasukkan parameter integer.
sumber
Tulis file header
#include<process.h>
dan gantiexit();
denganexit(0);
. Ini pasti akan bekerja di Turbo C; untuk kompiler lain, saya tidak tahu.sumber
exit
Fungsi dinyatakan dalam<stdlib.h>
.Praktik pemrograman yang buruk. Menggunakan fungsi goto adalah tidak lengkap dalam pemrograman C.
Sertakan juga file header stdlib.h dengan menulis
#include <iostream.h>
untuk menggunakanexit()
fungsi. Juga ingat bahwa fungsi exit () mengambil argumen integer. Gunakanexit(0)
jika program berhasil diselesaikan danexit(-1)
atau keluar dari fungsi dengan nilai bukan nol sebagai argumen jika program mengalami kesalahan.sumber
<iostream.h>
khusus untuk C ++, dan tidak terkait dengan<stdlib.h>
, tajuk yang sebenarnya diperlukan. Argumen hanya portabel denganexit
fungsi yang0
,EXIT_SUCCESS
, danEXIT_FAILURE
. Penggunaan nilai bukan nol untuk menunjukkan kegagalan adalah khusus untuk sistem mirip UNIX (dan mungkin beberapa lainnya); jangan mengandalkannya dalam kode portabel.Sertakan
stdlib.h
di header Anda, dan kemudian panggilabort();
di mana saja Anda ingin keluar dari program Anda. Seperti ini:Ketika pengguna masuk, sakelar menerima ini dan memberikannya ke kasus 3 di mana Anda memanggil
abort
fungsi. Ini akan keluar dari layar Anda segera setelah menekan tombol enter.sumber
abort
adalah tidak hal yang tepat untuk memanggil di sini, itu tidak akan memanggilatexit
penangan atau flush buffer file yang terbuka. Ini hanya boleh digunakan untuk penghentian program yang tidak normal, misalnya pernyataan gagal, dll. Untuk penghentian program normal,exit
harus digunakan.Gunakan process.h daripada stdlib dan iostream ... Ini akan bekerja 100%.
sumber
<iostream>
header khusus untuk C ++; pertanyaannya adalah tentang C.