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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Menu string
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Menu string  (Leído 1,449 veces)
mariano96

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Menu string
« en: 24 Febrero 2015, 01:49 am »

Hola, tengo una duda a la hora de hacer un menú que devuelva la opción elegida por el usuario: el problema es que tengo que hacer un do-while para que vaya verificando si la opción es correcta y hay opciones numéricas (1,2,3,etc) y una letra(q-para salir-).

string menu(){

   string opcion;

do{
   1-
   2-
   etc
   q-

 }while(opcion.length()>1 || opcion[0]=='0' || (opcion[0]>'q' || opcion[0]<'q'));

}

Al teclear 0 o una letra distinta de 'q' sí que se repite el do-while, pero se repite al teclear un número del 1 al 9 y no quiero que ocurra eso. A ver si me podéis ayudar.
Gracias de antemano.


En línea

MellaSystems

Desconectado Desconectado

Mensajes: 46



Ver Perfil
Re: Menu string
« Respuesta #1 en: 24 Febrero 2015, 02:22 am »

mira este menu y dime si te parece correcto:

Código
  1. #include <iostream>
  2.  
  3. main(){
  4. int OpcMen;
  5. int sigue = 1;
  6. do {
  7. system("cls");
  8. system("color 9F");
  9. std::cout<<"\TITULO AQUI\n"<<std::endl;
  10. std::cout<<"\t1.  "<<std::endl;
  11. std::cout<<"\t2.  "<<std::endl;
  12. std::cout<<"\t3.  "<<std::endl;
  13. std::cout<<"\t0.  Pulse cero Salir"<<std::endl<<std::endl;
  14. std::cout<<"\t    Ingrese su opci\242n: ";
  15.        while(!(std::cin>>OpcMen))
  16.           {
  17.    std::cin.clear();
  18.    std::string error;
  19.    std::cin>>error;
  20.            std::cout<<"\n\tLA OPCI\340N INGRESADA NO EXISTE"<<std::endl;
  21.     std::cout<<"\n\tIngrese su opci\242n nuevamente: ";
  22.           }
  23. switch(OpcMen) {
  24. case 1:
  25. //lo que quieres que haga en esta opcion
  26. break;
  27. case 2:
  28. //lo que quieres que haga en esta opcion
  29. break;
  30. case 3:
  31. //lo que quieres que haga en esta opcion
  32. break;
  33. case 0:
  34. sigue = 0;
  35. break;
  36. default:
  37. std::cout<<"\t\tLA OPCI\340N INGRESADA NO EXISTE"<<std::endl;
  38.    system("pause");
  39. }
  40. } while(sigue);
  41. }
  42.  

ese es un menu con do-while usando switch


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Menu string
« Respuesta #2 en: 24 Febrero 2015, 04:43 am »

tengo una duda a la hora de hacer un menú que devuelva la opción elegida por el usuario: el problema es que tengo que hacer un do-while para que vaya verificando si la opción es correcta y hay opciones numéricas (1,2,3,etc) y una letra(q-para salir-).
Solo tienes que leer la opción como un carácter, continuación realizas la operación correspondiente de acuerdo con el enunciado de tu programa, mas o menos así:
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. int main()
  7. {
  8.   char opcion;
  9.   bool salir;
  10.  
  11.   salir = false;
  12.   do {
  13.      cin >> opcion;
  14.  
  15.      switch (opcion){
  16.      case '0':
  17.         cout << "La opcion es 0" << endl;
  18.         break;
  19.      case '1':
  20.         cout << "La opcion es 1" << endl;
  21.         break;
  22.      case '2':
  23.         cout << "La opcion es 2" << endl;
  24.         break;
  25.      case 'q':
  26.         cout << "La opcion es q" << endl;
  27.         salir = true;
  28.         break;
  29.      default:
  30.         cout << "Opcion no valida" << endl;
  31.         break;
  32.      }
  33.   }while (!salir);
  34.  
  35.   return 0;
  36. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
mariano96

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Menu string
« Respuesta #3 en: 24 Febrero 2015, 11:34 am »

Gracias por responder. Me sirvió.
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