Je veux savoir comment et quand puis-je utiliser la exit()
fonction comme le programme de mon livre:
#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");
}
Lorsque je l'exécute, il affiche ERREUR: appel à la fonction non définie exit () .
Aussi, je veux savoir comment je peux créer une option pour fermer la fenêtre dans laquelle le programme s'exécute? Par exemple, j'ai créé un programme piloté par menu qui avait plusieurs options et l'une d'elles était "quitter le menu" . Comment puis-je faire cela pour quitter le programme (c'est-à-dire fermer la fenêtre)?
void main()
OTOH est tout simplement faux . Tout commeexit();
c'est faux, et omettre#include <stdlib.h>
est faux.Réponses:
Essayez d'utiliser à la
exit(0);
place. Laexit
fonction attend un paramètre entier. Et n'oubliez pas#include <stdlib.h>
.la source
La
exit
fonction est déclarée dans l'en-tête stdlib, vous devez donc avoiren haut de votre programme pour pouvoir utiliser
exit
.Notez également que
exit
prend un argument entier, donc vous ne pouvez pas l'appeler commeexit()
, vous devez appeler commeexit(0)
ouexit(42)
. 0 signifie généralement que votre programme s'est terminé avec succès et des valeurs différentes de zéro sont utilisées comme codes d'erreur.Il existe également des macros prédéfinies
EXIT_SUCCESS
etEXIT_FAILURE
, par ex.exit(EXIT_SUCCESS);
la source
exit
prend un argument entier, mais expliquer pourquoi il prend un argument entier et que certains compilateurs exigent l'explicite#include <stdlib.h>
.exit(int code);
est déclaréstdlib.h
, vous avez donc besoin d'unAussi:
- Vous n'avez pas de paramètre pour le
exit()
, il en faut unint
donc fournissez un.- Gravez ce livre, il utilise
goto
ce qui est (pour tout le monde sauf les pirates du noyau Linux) mauvais, très, très , TRÈS mauvais.Edit:
Oh, et
c'est mauvais aussi, c'est:
la source
goto
est parfois la bonne chose à faire (et le noyau Linux en fournit de nombreux exemples, mais ce n'est pas le seul code qui peut l'utiliser). Mais l'exemple d'OP n'est clairement pas l'un de ces cas, alors oui, ce livre devrait être brûlé :).Essayez la sortie de l'homme .
Oh et:
la source
La
exit()
fonction est un type de fonction avec un type de retour sans argument. Il est défini par le fichier d'en-tête stdlib.Vous devez utiliser
( exit(0) or exit(EXIT_SUCCESS))
ou(exit(non-zero)
ouexit(EXIT_FAILURE) )
.la source
L'exemple suivant montre l'utilisation de la
exit()
fonction.Production
la source
Vous devez ajouter une ligne avec
#include <stdlib.h>
pour inclure ce fichier d'en-tête etexit
renvoyer une valeur afin d'attribuer un entier dansexit(any_integer)
.la source
En plus de renvoyer un code de sortie au processus parent -
Sous UNIX, un aspect important qui, je pense, a été laissé de côté est que exit () au premier appel (dans l'ordre inverse) toutes ces fonctions, qui ont été enregistrées par l'appel atexit ().
Veuillez consulter SUSv4 pour plus de détails.
la source
sur unix comme la sortie des systèmes d'exploitation appartient au groupe d'appels système. les appels système sont des appels spéciaux qui permettent au code utilisateur (votre code) d'appeler le code noyau. ainsi exit call effectue certaines actions de nettoyage spécifiques au système d'exploitation avant de retourner le contrôle au système d'exploitation, il met fin au programme.
Certains compilateurs vous donneront le même opcode de ces deux exemples, mais d'autres non. Par exemple, l'opcode de la première fonction n'inclura aucun type d'opcode de positionnement de pile qui sera inclus dans le deuxième exemple comme pour toute autre fonction. Vous pouvez compiler les deux exemples et les démonter et vous verrez la différence.
Vous pouvez utiliser la sortie de n'importe quelle partie de votre code et vous assurer que le processus se termine. N'oubliez pas d'inclure le paramètre entier.
la source
Écrivez le fichier d'en-tête
#include<process.h>
et remplacez-leexit();
parexit(0);
. Cela fonctionnera certainement dans Turbo C; pour les autres compilateurs, je ne sais pas.la source
exit
fonction est déclarée dans<stdlib.h>
.Mauvaise pratique de programmation. L'utilisation d'une fonction goto est un non-non complet en programmation C.
Incluez également le fichier d'en-tête stdlib.h en écrivant
#include <iostream.h>
pour utiliserexit()
function. Souvenez-vous également que la fonction exit () prend un argument entier. Utilisezexit(0)
si le programme s'est terminé avec succès et /exit(-1)
ou quittez la fonction avec une valeur différente de zéro comme argument si le programme a une erreur.la source
<iostream.h>
est spécifique à C ++ et n'est pas lié à<stdlib.h>
l'en-tête réellement nécessaire. Les arguments que portables à laexit
fonction sont0
,EXIT_SUCCESS
etEXIT_FAILURE
. L'utilisation de toute valeur différente de zéro pour indiquer l'échec est spécifique aux systèmes de type UNIX (et probablement à certains autres); ne comptez pas dessus dans le code portable.Incluez
stdlib.h
dans votre en-tête, puis appelezabort();
à n'importe quel endroit où vous souhaitez quitter votre programme. Comme ça:Lorsque l'utilisateur entre, le commutateur l'accepte et le donne au cas 3 où vous appelez la
abort
fonction. Il quittera votre écran immédiatement après avoir appuyé sur la touche Entrée.la source
abort
n'est pas la chose appropriée à appeler ici, il n'appellera pas deatexit
gestionnaires ni ne videra les tampons de fichiers ouverts. Il ne doit être utilisé que pour la terminaison anormale du programme, par exemple des assertions échouées, etc. Pour la fin normale du programme, ilexit
doit être utilisé.Utilisez process.h au lieu de stdlib et iostream ... Cela fonctionnera à 100%.
la source
<iostream>
tête est spécifique au C ++; la question concerne C.