Título: [Solucionado] como llamar a main() Publicado por: Mario Olivera en 27 Agosto 2014, 19:40 pm Hola gente, tengo una duda, antes lo sabía hacer pero ahora no, y lo que quiero hacer es llamar a la función main, para que empieze el programa de nuevo, trabajo separando la interfaz de la implementacion y en una funcion de c++ intenté hacer return main(); y no funcionó si alguien me ayudaría se lo agradecería.
Ya que estoy quiero saber como haría para hacer un system("pause") y system ("cls"); en linux. Desde a muchas gracias por cualquier ayuda, saludos ;D Título: Re: como llamar a main() [AYUDA] Publicado por: Caster en 27 Agosto 2014, 19:58 pm No entiendo muy bien lo primero que preguntas y tampoco creo que hubiese podido responderte de todas formas. En cuanto a lo segundo, la funcion system() sirve para ejecutar comandos del sistema operativo, si tu abres CMD en Windows, ejecutas un par de comandos y despues haces el comando "cls" (sin comillas) lo que hará será limpiar la pantalla asi que lo que necesitas es el equivalente a esos comandos el linux, el equivalente a "cls" es "clear" y para "pause" no sabría decirte. Dicho esto te desaconsejo totalmente el uso de de system("pause"), la primera razón es el problema que tienes tu y es que no es portable, solo tendrá efecto en los sistemas que soporten el comando pause y que ademas es muy pesado llamar al sistema para hacer una pausa en tu programa, te recomiendo otras alternativas como getchar(); o esta pequeña linea de codigo:
Código
que lo que hará es estar ejecutandose mientras tu no pulses la tecla enter. Del mismo modo, en vez de utilizar system("cls") sería mejor y más portable el uso de fflush(). Como consejo te recomiendo que leas esto: |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html) Saludos. Título: Re: como llamar a main() [AYUDA] Publicado por: jaxoR en 27 Agosto 2014, 20:33 pm Para que vuelva a empezar el programa simplemente pon:
main(); Y listo, empezará nuevamente. Eso es lo que yo hago en mis programas Título: Re: como llamar a main() [AYUDA] Publicado por: avesudra en 27 Agosto 2014, 21:03 pm Para que vuelva a empezar el programa simplemente pon: Esto que comentas es inapropiado pues puedes perder el control del programa, estoy seguro que lo podéis solucionar con un bucle infinito:main(); Y listo, empezará nuevamente. Eso es lo que yo hago en mis programas Código Un cordial saludo. Título: Re: como llamar a main() [AYUDA] Publicado por: Mario Olivera en 27 Agosto 2014, 23:59 pm Hola desde ya gracias por las ayudas que he recibido, lo de system ya lo tengo solucionado, pero lo de llamar a main no, explico un poquito que archivos tengo...
Tengo 3 archivos en mi proyecto uno llamado main.cpp, otro cabezal.h donde se muestran las funciones que tiene y un cabezal.cpp que describe las funciones... bueno desde el archivo cabezal quiero llamar a main, en un if, de un función miembro de la clase que esta en el cabezal,.cpp y la verdad es que no se como, si alguien podría ayudarme se lo agradecería, Saludos :D Título: Re: como llamar a main() [AYUDA] Publicado por: avesudra en 28 Agosto 2014, 00:10 am Hola desde ya gracias por las ayudas que he recibido, lo de system ya lo tengo solucionado, pero lo de llamar a main no, explico un poquito que archivos tengo... No te lo aconsejo pero como veas, fíjate que te vas a quedar en una llamada infinita:Tengo 3 archivos en mi proyecto uno llamado main.cpp, otro cabezal.h donde se muestran las funciones que tiene y un cabezal.cpp que describe las funciones... bueno desde el archivo cabezal quiero llamar a main, en un if, de un función miembro de la clase que esta en el cabezal,.cpp y la verdad es que no se como, si alguien podría ayudarme se lo agradecería, Saludos :D Código Estoy completamente seguro de que tu código podría organizarse de manera de que no te haga falta dicha llamada. Un saludo. Título: Re: como llamar a main() [AYUDA] Publicado por: Mario Olivera en 28 Agosto 2014, 01:03 am Muchas gracias por sus ayudas, he podido llamar a main(), pero te hice caso avesundra y busque otra forma de que se repita lo que queria y lo logre, nada más que decir que GRACIAS ;-)
|