Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MiguelS en 15 Julio 2020, 23:10 pm



Título: Podrian ayudarme a hacer funcional el menu con Do While, gracias.
Publicado por: MiguelS en 15 Julio 2020, 23:10 pm
Código
  1. #include <iostream>
  2. #include <locale.h>
  3. #include <string>
  4.  
  5.  
  6. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  7. using namespace std;
  8.  
  9. int main(int argc, char** argv) {
  10. int entero;
  11. float real;
  12. char caracter;
  13. string cadena;
  14.  
  15.  
  16.    /*opcion*/int opc;
  17.  
  18.     do {
  19.     cout<<"OPCIONES\n";
  20. cout<<"1-ENTERO\n";
  21. cout<<"2-REAL\n";
  22.    cout<<"3-CARACTER\n";
  23.    cout<<"4-CADENA\n";
  24.  
  25.    cout<<"SELECCIONA UNA OPCION 1-4: ";
  26.    cin>> opc;
  27.  
  28.    switch(opc){
  29.     case 1:
  30.     cout<< "INTRODUCE UN NUMERO ENTERO: ";
  31.     cin>> entero;
  32.     break;
  33.     case 2:
  34.     cout<< "INTRODUCE UN NUMERO REAL: ";
  35.     cin>> real;
  36.     break;
  37.     case 3:
  38. cout<< "INTRODUCE UN CARACTER: ";
  39.     cin>> caracter;
  40.     break;
  41. case 4:
  42. cout<< "INTRODUCE UNA CADENA: ";
  43.     cin>> cadena;
  44.     break;
  45.    }
  46. } while (opc!=4);
  47. [code/]

[MOD] para publicar codigo usar las etiquetas GeSHi


Título: Re: Podrian ayudarme a hacer funcional el menu con Do While, gracias.
Publicado por: K-YreX en 16 Julio 2020, 05:02 am
Si te fijas, estás pidiendo un valor entre 1 y 4 pero repites el bloque do-while cuando la opción elegida es diferente de 4. No creo que sea eso lo que quieres.
Deberías establecer otro valor para salir y repetir el bucle siempre que la opción elegida sea diferente a la de salir. (También puedes hacer que se repita siempre que la opción esté entre 1 y 4, eso ya es cosa tuya)

Un ejemplo de bucle que se repite hasta que introduces el 0:
Código
  1. do {
  2.  cout << "Introduce un numero (0 para salir): ";
  3.  cin >> numero;
  4. } while(numero != 0);

Si lo que quieres es que se repita siempre que se elija una opción entre 1 y 4 por ejemplo, tendrías que cambiar la condición del while por:
Código
  1. while(numero >= 1 && numero <= 4);

Al final lo único que tienes que hacer siempre es pensar qué condición quieres utilizar para repetir el bucle y ponerla dentro del while().

Suerte. :-X