Buenas,
Una pregunta, existe algun modo de que si un programa tiene un menu de opciones que al elegir una opcion ejeute una serie de funciones y que cuando termine de ejecutar las opciones vuelva a aparecer el menu y pueda seleccionar otra opcion distinta??
Muchas gracias de antemano
para eso usas while
Como??
Aqui dejo mi codigo para que lo veas
/**********MENU**********/
void mostrarMenu(){
cout <<"1 - Generar la serie" <<endl;
cout <<"2 - Buscar en la serie"<<endl;
cout <<"0 - Salir"<<endl;
cout <<"Opción: ";
}
bool esOpcionValida(int opc){
return opc==1 || opc==2 || opc==0;
}
int leerOpcion(int& opc){
cin >> opc;
while(cin.fail() || !esOpcionValida(opc)){
cin.clear();
cin.sync();
cout <<"ERROR: La opción introducida no es válida" <<endl;
mostrarMenu();
cin >> opc;
}
return opc;
}
int menu(int opc){
mostrarMenu();
opc=leerOpcion(opc);
return opc;
}
void _Opcion1(){
generar_y_escribir();
}
void _Opcion2(){
int num;
pedirNum (num, "Valor absoluto del elmento a buscar: ");
buscar (num);
mostrar (num);
}
void _Opcion0(){
salir();
}
void ejecutarOpciones(int opc){
switch(opc){
case 1: _Opcion1(); break;
case 2: _Opcion2(); break;
case 0: _Opcion0(); break;
}
}
/**********MAIN**********/
int main(int argc, char** args){
setlocale(LC_ALL, "spanish");
int opc;
opc=menu(opc);
ejecutarOpciones(opc);
system ("pause");
return 0;
}
más facil aún porqeu lo tienes como funciones... siempre que opc no sea 0, el ciclo se repite
Vale, osea que en el main quedaria asi:
int main(int argc, char** args){
setlocale(LC_ALL, "spanish");
int opc;
while (opc!=0){
opc=menu(opc);
ejecutarOpciones(opc);
}
system ("pause");
return 0;
}
si haces eso, como no asignas valor original a opc, puede contener valor, ese puede ser 0 y nunca entrar... puedes hacerlo dandole un valor diferente a 0 o
do{
opc=menu(opc);
ejecutarOpciones(opc);
}while (opc!=0);