Quiero saber cómo y cuándo puedo usar la exit()
función como el programa de mi libro:
#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");
}
Cuando lo ejecuto, muestra ERROR: llamada a la función no definida exit () .
Además, quiero saber cómo puedo crear una opción para cerrar la ventana en la que se ejecuta el programa. Por ejemplo, hice un programa basado en menús que tenía varias opciones y una de ellas era "salir del menú" . ¿Cómo puedo hacer que esto salga del programa (es decir, cerrar la ventana)?
void main()
OTOH está simplemente equivocado . Igual queexit();
está mal, y omitir#include <stdlib.h>
está mal.Respuestas:
Intente usar en su
exit(0);
lugar. Laexit
función espera un parámetro entero. Y no te olvides de hacerlo#include <stdlib.h>
.fuente
La
exit
función está declarada en el encabezado stdlib, por lo que debe teneren la parte superior de su programa para poder usarlo
exit
.Tenga en cuenta también que
exit
toma un argumento entero, por lo que no puede llamarlo comoexit()
, debe llamar comoexit(0)
oexit(42)
. 0 generalmente significa que su programa se completó correctamente y los valores distintos de cero se utilizan como códigos de error.También hay macros predefinidas
EXIT_SUCCESS
yEXIT_FAILURE
, por ejemplo,exit(EXIT_SUCCESS);
fuente
exit
toma un argumento entero, sino explicar por qué toma un argumento entero y que algunos compiladores requieren el explícito#include <stdlib.h>
.exit(int code);
está declarado en,stdlib.h
por lo que necesita unAdemás:
- No tiene ningún parámetro para el
exit()
, es necesarioint
proporcionar uno.- Grabe este libro, usa lo
goto
que es (para todos menos para los hackers del kernel de Linux) malo, muy, muy , MUY malo.Editar:
Oh, y
también es malo, es:
fuente
goto
ocasionalmente es lo correcto (y el kernel de Linux proporciona muchos ejemplos de eso, pero no es el único código que puede usarlo). Pero el ejemplo de OP claramente no es uno de esos casos, así que sí, ese libro debería quemarse :).Prueba la salida del hombre .
Oh y:
fuente
La
exit()
función es un tipo de función con un tipo de retorno sin un argumento. Está definido por el archivo de encabezado stdlib.Necesita usar
( exit(0) or exit(EXIT_SUCCESS))
o(exit(non-zero)
oexit(EXIT_FAILURE) )
.fuente
El siguiente ejemplo muestra el uso de la
exit()
función.Salida
fuente
Debe agregar una línea con
#include <stdlib.h>
para incluir ese archivo de encabezado yexit
debe devolver un valor, así que asigne algún número entero enexit(any_integer)
.fuente
Además de devolver un código de salida al proceso principal:
En UNIX, un aspecto importante que creo que se ha dejado de lado es que exit () en la primera llamada (en orden inverso) todas esas funciones, que fueron registradas por atexit () call.
Consulte SUSv4 para obtener más detalles.
fuente
en unix como la salida de los sistemas operativos pertenece al grupo de llamadas al sistema. Las llamadas al sistema son llamadas especiales que permiten al código de usuario (su código) llamar al código del kernel. por lo que la llamada de salida realiza algunas acciones de limpieza específicas del sistema operativo antes de devolver el control al sistema operativo, finaliza el programa.
Algunos compiladores le darán el mismo código de operación de ambos ejemplos, pero otros no. Por ejemplo, el código de operación de la primera función no incluirá ningún tipo de código de operación de posicionamiento de pila que se incluirá en el segundo ejemplo como para cualquier otra función. Puede compilar ambos ejemplos y desmontarlos y verá la diferencia.
Puede usar la salida de cualquier parte de su código y asegurarse de que el proceso finalice. No olvide incluir el parámetro de número entero.
fuente
Escriba el archivo de encabezado
#include<process.h>
y reempláceloexit();
conexit(0);
. Esto definitivamente funcionará en Turbo C; para otros compiladores, no lo sé.fuente
exit
función está declarada en<stdlib.h>
.Mala práctica de programación. Usar una función goto es un completo no no en la programación en C.
También incluya el archivo de encabezado stdlib.h escribiendo
#include <iostream.h>
para usar laexit()
función. También recuerde que la función exit () toma un argumento entero. Úseloexit(0)
si el programa se completó correctamenteexit(-1)
o salir de la función con un valor distinto de cero como argumento si el programa tiene un error.fuente
<iostream.h>
es específico de C ++ y no está relacionado con<stdlib.h>
el encabezado que realmente se necesita. Los argumentos solamente portátil a laexit
función son0
,EXIT_SUCCESS
yEXIT_FAILURE
. El uso de cualquier valor distinto de cero para denotar fallas es específico de los sistemas tipo UNIX (y probablemente algunos otros); no confíe en él en código portátil.Incluya
stdlib.h
en su encabezado y luego llameabort();
en cualquier lugar donde desee salir de su programa. Me gusta esto:Cuando el usuario ingresa al interruptor acepta esto y lo da al caso 3 donde llama a la
abort
función. Saldrá de su pantalla inmediatamente después de presionar la tecla Intro.fuente
abort
no es lo apropiado para llamar aquí, no llamará a losatexit
controladores ni vaciará los búferes de archivos abiertos. Solo debe usarse para la terminación anormal del programa, por ejemplo, afirmaciones fallidas, etc. Para la terminación normal del programa,exit
debe usarse.Utilice process.h en lugar de stdlib e iostream ... Funcionará al 100%.
fuente
<iostream>
encabezado es específico de C ++; la pregunta es sobre C.