Podrian ayudarme a hacer funcional el menu con Do While, gracias.

Iniciado por MiguelS, 15 Julio 2020, 23:10 PM

0 Miembros y 1 Visitante están viendo este tema.

MiguelS

Código (cpp) [Seleccionar]

#include <iostream>
#include <locale.h>
#include <string>


/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int main(int argc, char** argv) {
int entero;
float real;
char caracter;
string cadena;


   /*opcion*/int opc;
   
    do {
    cout<<"OPCIONES\n";
cout<<"1-ENTERO\n";
cout<<"2-REAL\n";
   cout<<"3-CARACTER\n";
   cout<<"4-CADENA\n";
   
   cout<<"SELECCIONA UNA OPCION 1-4: ";
   cin>> opc;
 
   switch(opc){
    case 1:
    cout<< "INTRODUCE UN NUMERO ENTERO: ";
    cin>> entero;
    break;
    case 2:
    cout<< "INTRODUCE UN NUMERO REAL: ";
    cin>> real;
    break;
    case 3:
cout<< "INTRODUCE UN CARACTER: ";
    cin>> caracter;
    break;
case 4:
cout<< "INTRODUCE UNA CADENA: ";
    cin>> cadena;
    break;
   }
} while (opc!=4);
[code/]


[MOD] para publicar codigo usar las etiquetas GeSHi

K-YreX

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 (cpp) [Seleccionar]

do {
  cout << "Introduce un numero (0 para salir): ";
  cin >> numero;
} 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 (cpp) [Seleccionar]
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
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;