Autor
|
Tema: Volver al menú principal sin usar goto (Leído 16,026 veces)
|
martin_poipon
Desconectado
Mensajes: 29
Mis metas: Dominar C++ & PHP
|
Hola! Tengo este código: #include <cstdlib> #include <iostream> using namespace std; void pMenu(); int main(int argc, char *argv[]) { char opcion; //Valores bucle FOR int vInicial; int vFinal; int Paso; //Valores bucle WHILE int Y; int Z; //Imprimir menú pMenu(); cin >> opcion; switch(opcion) { case '1': system("CLS"); cout << "Valor inicial del bucle:\r\n"; cin >> vInicial; system("CLS"); cout << "Valor final del bucle:\r\n"; cin >> vFinal; system("CLS"); cout << "Paso: (suma)\r\n"; cin >> Paso; for(int i=vInicial;i<=vFinal;i=i+Paso) { cout << i; } break; case '2': system("CLS"); cout << "Mientras que Y <= Z (mientras\r\nque Y sea igual o mayor que Z), escribe el valor de Y:"; cin >> Y; system("CLS"); cout << "Escribe el valor de Z:"; cin >> Z; system("CLS"); cout << "Paso:"; cin >> Paso; system("CLS"); while(Y<=Z) { Y+=Paso; } break; case '3': system("CLS"); cout << "system(\"PAUSE\"); funciona así:"; system("PAUSE"); break; case '4': system("CLS"); cout << "system(\"PAUSE>NUL\") funciona así: (presiona\r\n alguna tecla para salir)"; system("PAUSE>NUL"); break; default: cout << "La opción seleccionada no es válida."; system("PAUSE"); break; } return EXIT_SUCCESS; } void pMenu() { cout << " BIENVENIDO \r\n\r\n"; cout << "Escoge una opción:\r\n"; cout << "1.- Bucle \"for\" de X a Y\r\n"; cout << "2.- Bucle \"while\" de X a Y\r\n"; cout << "3.- system(\"PAUSE\")\r\n"; cout << "4.- system(\"PAUSE>NUL\")\r\n"; }
¿Cómo hago para que, después de hacer todo lo del switch, vuelva a empezar por int main()? PD: Acepto críticas y sugerencias sobre el código, pues es mi primer código que funciona
|
|
|
En línea
|
|
|
|
madpitbull_99
|
Creo que con algo así, serviría: int main(int argc, char *argv[]) { char continue = 'c'; while(continue == 'c'){ //Aqui van las instrucciones cout << "Pasa salir pulsa X . Si deseas seguir, pulsa C : "; cin >>continue; //Si se introduce C, las instrucciones se vuelven a ejecutar } }
Si esto es lo que quieres, asegurate de cambiar system("pause") por otra cosa.
|
|
|
En línea
|
|
|
|
Queta
Desconectado
Mensajes: 267
|
#include <cstdio> int main() { printf("Hola!"); main(); return 0; }
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
martin_poipon
Desconectado
Mensajes: 29
Mis metas: Dominar C++ & PHP
|
Lo siento, pero no funciona el return 0; Y lo de 'C', no es eso lo que quiero, quiero que, al llegar al break; y salir del switch(), que vaya de nuevo a int main() y que empieza a leer todo de nuevo.
Gracias
|
|
|
En línea
|
|
|
|
Queta
Desconectado
Mensajes: 267
|
Pues quita el return, da igual, pero la solución es ésta...
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Pues quita el return, da igual, pero la solución es ésta...
No es buena costumbre usar recursión con main(), los nuevos estándares no lo ¿por qué no usas un ciclo infinito?
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
return main()
|
|
|
En línea
|
|
|
|
hari
Desconectado
Mensajes: 51
|
Yo para los menús usaría algo así como un bucle while, en el cuál salga cuando yo quiera con un bool. #include <iostream> using namespace std; int main(){ bool salir = false; char eleccion; do{ //(While (!salir) cout << "Escoja una opción" << endl; cin >> eleccion; //Aquí irían todas tus opciones con un switch case ó con un if else //Te pongo el ejemplo con un if else if(eleccion == s) salir == true; else if(eleccion == p){ cout << "Has tecleado la letra P" << endl; //Aquí podrías poner todo el código que quisieses cuando teclea P, al terminar volverá al menú } }while(!salir) }
|
|
« Última modificación: 1 Julio 2011, 13:13 pm por hari »
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
¿Has probado return main(); ?
|
|
|
En línea
|
|
|
|
martin_poipon
Desconectado
Mensajes: 29
Mis metas: Dominar C++ & PHP
|
¿Has probado return main(); ?
No funciona, tira error al intentar compilar. Lo de quitar el return, tampoco. Lo solucioné con esto: int main(); Inicio: .... .... goto Inicio;
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
crear un pelicula con un menu principal
Multimedia
|
Luish@o
|
3
|
4,332
|
7 Noviembre 2009, 14:40 pm
por Axus
|
|
|
(solucionado)volver menu principal
Programación C/C++
|
cundre
|
7
|
6,557
|
11 Febrero 2011, 17:18 pm
por cundre
|
|
|
[Lenguaje C] Volver al menu principal
« 1 2 »
Programación C/C++
|
Whiteseba
|
11
|
24,558
|
5 Marzo 2012, 01:28 am
por Whiteseba
|
|
|
netbeans abrir ventana secuandaria y volver a los procesos de la principal
Java
|
PhipexX
|
2
|
2,728
|
2 Enero 2017, 19:05 pm
por ThinkByYourself
|
|
|
"Ayuda" No se como volver al menu principal C#
Programación C/C++
|
MaximuZ
|
1
|
4,635
|
6 Junio 2017, 06:28 am
por yoelmend
|
|