elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Solucionado] como llamar a main()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] como llamar a main()  (Leído 3,710 veces)
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
[Solucionado] como llamar a main()
« 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


« Última modificación: 28 Agosto 2014, 01:04 am por 718208 » En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: como llamar a main() [AYUDA]
« Respuesta #1 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
  1. while ( getchar() != '\n')
  2. ;

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|

Saludos.


En línea

jaxoR

Desconectado Desconectado

Mensajes: 93

?


Ver Perfil WWW
Re: como llamar a main() [AYUDA]
« Respuesta #2 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
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: como llamar a main() [AYUDA]
« Respuesta #3 en: 27 Agosto 2014, 21:03 pm »

Para que vuelva a empezar el programa simplemente pon:

main();

Y listo, empezará nuevamente. Eso es lo que yo hago en mis programas
Esto que comentas es inapropiado pues puedes perder el control del programa, estoy seguro que lo podéis solucionar con un bucle infinito:
Código
  1. #include <iostream>
  2.  
  3. int main(int argc, char** argv)
  4. {
  5.     for( ; ; )
  6.     {
  7.           //Hacer algo.
  8.           //Condición para salir
  9.           if(algo)
  10.               break;
  11.     }
  12.     return 0;
  13. }
Un cordial saludo.
« Última modificación: 27 Agosto 2014, 21:05 pm por avesudra » En línea

Regístrate en
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
Re: como llamar a main() [AYUDA]
« Respuesta #4 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  
« Última modificación: 28 Agosto 2014, 00:00 am por 718208 » En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: como llamar a main() [AYUDA]
« Respuesta #5 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...

 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  
No te lo aconsejo pero como veas, fíjate que te vas a quedar en una llamada infinita:
Código
  1. if(/*condición*/)
  2. {
  3.    main();
  4. }
Estoy completamente seguro de que tu código podría organizarse de manera de que no te haga falta dicha llamada.

Un saludo.
« Última modificación: 28 Agosto 2014, 00:17 am por avesudra » En línea

Regístrate en
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
Re: como llamar a main() [AYUDA]
« Respuesta #6 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 ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines