Foros del Web » Programación para mayores de 30 ;) » C/C++ »

repetir main

Estas en el tema de repetir main en el foro de C/C++ en Foros del Web. Buenos dias foro. Queria repetir un programa de la forma siguiente: Código PHP: #include <iostream> int opt ; void rep ( int opt ) {         cout << "Desea repetir el programa:('S/N')" ...
  #1 (permalink)  
Antiguo 09/08/2010, 07:03
 
Fecha de Ingreso: marzo-2010
Mensajes: 53
Antigüedad: 14 años, 9 meses
Puntos: 0
repetir main

Buenos dias foro.
Queria repetir un programa de la forma siguiente:
Código PHP:
#include <iostream>

int opt;
void rep(int opt)
{
       
cout<<"Desea repetir el programa:('S/N')"<<endl;
       
cin>>opt;
if (
opt =='S'||opt=='s')
{
       
main(); /***¿¿Se puede llamar así a la funcion principal main()??
                             Ya lo he  intentado pero nada***/
}
if(
opt=='N'||opt=='n')

       
system("pause");
}
else
{
       
rep(opt);  /***¿¿Se puede llamar a la funcion en la misma??***/
}
}
main()
{
       
cout<<"Hola"<<endl;
       
rep(opt);

Muchas gracias a todos.
Un saludo
  #2 (permalink)  
Antiguo 09/08/2010, 09:15
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 6 meses
Puntos: 95
Respuesta: repetir main

No, los estandares de C/C++ son claros y estrictos en eso:

3.6.1.3
"The function main shall not be used within a program."

5.2.2.9
"Recursive calls are permitted, except to the function named main"

(La funcion main no deberá ser usada dentro de otro programa
Llamadas recursivas son permitidas, excepto a la función llamada main)

En otras palabras, si tu creas tu funcion, no puedes llamar a main()
y no puedes utilizar a main() dentro de la misma funcion main()

Que pasara si lo haces? Nadie sabe, depende del compilador, unos mostraran un warning, otros no compilaran y si pudieras llegar a ejecutar tu programa, posiblemente se congelaría en tiempo de ejecución o arrojaría datos extraños.

Si quieres hacer que esa parte de tu funcion se repita, la mas sencilla dentro de muchas opciones, es que utilices un while()
  #3 (permalink)  
Antiguo 09/08/2010, 17:30
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: repetir main

Alan tiene razon, lo que tu quieres es basico, pero no es necesario volver a ejecutar main,
para eso estan los bucles, en tu caso yo usaria un while, y cuando el usuario elija salir(N)
haces que la condicion del while sea falsa y el programa termina.
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD

Etiquetas: main, repetir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:05.