Dev - C++ - Problema con Menú de opciones

 
Vista:
Imágen de perfil de Den
Val: 24
Ha aumentado su posición en 21 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con Menú de opciones

Publicado por Den (8 intervenciones) el 11/03/2021 05:26:29
Busco ayuda con mi menú de opciones, al probarlo me despliega correctamente mi menú, pero al seleccionar una opción, me imprime mi opción y me regresa al menú sin pedirselo. Cómo evito que me regrese al menú?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
do{
    int a, b;
 
    cout << "1- producto 1 \n";
    cout << "2- producto 2 \n";
    cout << "3- producto 3 \n";
    cout << "4- producto 4 \n";
    cout << "5- producto 5 \n";
    cout << "6- regresar \n \n" ;
    cin >> a;
 
    switch (a) {
        case 1: cout << "1 funciona \n";
        break;
 
        case 2: cout << "2 funciona \n";
        break;
 
        case 3: cout << "3 funciona \n";
        break;
 
        case 4: cout << "4 funciona \n";
        break;
 
        case 5: cout << "5 funciona \n";
        break;
 
        case 6: cout << "seguro que quieres regresar...?    SI o NO \n"
            ;cout << "\n - SI";
            cout << "\n 2- NO";
            cin >> b;
            if (b=1)
            {
                return 0;
            }
            else
            {
                return main();
            }
            break;
    }
}
while (a != 6);
system("pause");
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.427
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con Menú de opciones

Publicado por Alfil (1270 intervenciones) el 11/03/2021 08:02:27
Lo normal cuando creas un menú es que, una vez realizadas las operaciones pertinentes de acuerdo con la opción elegida, se vuelva al menú, y se utilice la última opción (en este caso la opción 6), para salir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Den
Val: 24
Ha aumentado su posición en 21 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con Menú de opciones

Publicado por Den (8 intervenciones) el 11/03/2021 10:10:57
Gracias por aclararme la duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Den
Val: 24
Ha aumentado su posición en 21 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con menú de opciones

Publicado por Den (8 intervenciones) el 12/03/2021 08:31:39
Disculpa, en este mismo menú de opciones, al seleccionar la opción 6, independientemente de si escoja si o no, me termina el programa. Cómo le hago?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.427
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Problema con menú de opciones

Publicado por Alfil (1270 intervenciones) el 12/03/2021 13:19:48
Fíjate que en lugar de un int utilizo un char como opción para prevenir la pulsación accidental de una letra en vez de un número.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
int main()
{
    char opcion;
 
    do {
        std::cout << std::endl;
        std::cout << "1- producto 1 \n";
        std::cout << "2- producto 2 \n";
        std::cout << "3- producto 3 \n";
        std::cout << "4- producto 4 \n";
        std::cout << "5- producto 5 \n";
        std::cout << "6- Salir \n \n" ;
 
        std::cout << "OPCION (1-6): " ;
        std::cin >> opcion;
 
        switch (opcion)
        {
            case '1': std::cout << "\n1 funciona \n"; break;
            case '2': std::cout << "\n2 funciona \n"; break;
            case '3': std::cout << "\n3 funciona \n"; break;
            case '4': std::cout << "\n4 funciona \n"; break;
            case '5': std::cout << "\n5 funciona \n"; break;
            case '6': std::cout << "\n\nFIN DEL PROGRAMA\n\n"; break;
            default: std::cout << "\n\nOPCION NO VALIDA \n\n"; break;
        }
 
    } while (opcion != '6');
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar