es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mostrando el estado de la opción de menú si es seleccionada en la aplicación de consola.

Soy nuevo en C++ y estoy tratando de crear una aplicación de consola que tenga un menú con opciones y con un estado que indique si la opción está seleccionada o no.

Aquí está el código de ejemplo con el que estoy trabajando:

“`
#include
#include <windows.h>

int main()
{
//Crear diseño de Consola
std::cout << “————————————————–\n”;
std::cout << ” Menú de Consola \n”;
std::cout << ” Subtítulo para Menú \n”;
std::cout << “————————————————–\n”;

//Juego objetivo para hackear (inserte el título del juego)
std::cout << "\nAutor: John Doe\n";
//Estado del Juego
std::cout << "ESTADO DE APP:\t\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD1] Opción 1\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD2] Opción 2\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD3] Opción 3\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD4] Opción 4\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD5] Opción 5\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD6] Opción 6\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD7] Opción 7\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[NUMPAD8] Opción 8\t\t" << "->" << "OFF" << "<-\n";
std::cout << "[INSERTAR]  Salir\n";
std::cout << "--------------------------------------------------\n";
return 0;

}

Sé que probablemente necesitaré escribir un bucle que verifique si una opción está seleccionada o no y tal vez almacenar ese valor como un booleano y luego tener una cadena que muestre OFF o ON en el menú?

Por favor, disculpen mi falta de conocimiento de programación, ¡pero soy nuevo! Espero sus comentarios.</windows.h>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, vas por buen camino. Puedes usar un bucle para comprobar continuamente la entrada del usuario y actualizar el estado de la opción seleccionada en consecuencia. Puedes almacenar el estado de cada opción en una variable booleana y actualizarlo según la entrada del usuario. Luego, puedes mostrar el estado de cada opción en el menú comprobando el valor booleano e imprimiendo “ON” o “OFF” en consecuencia.

    Aquí hay un ejemplo de implementación:

    #include <iostream>
    #include <windows.h>
    
    int main()
    {
        const int numOptions = 8;
    
        bool optionStatus[numOptions] = { false }; // inicializa todas las opciones en "OFF"
    
        // Crear diseños de consola
        std::cout << "--------------------------------------------------\n";
        std::cout << "                  Menú de consola                    \n";
        std::cout << "                Subtítulo del menú                  \n";
        std::cout << "--------------------------------------------------\n";
    
        //Juego objetivo para hacking (Insertar título del juego)
        std::cout << "\nAutor: John Doe\n";
    
        int input;
        do {
            // mostrar menú con el estado actual de las opciones
            std::cout << "ESTADO APP:\t\t\t" << (optionStatus[0] ? "ENCENDIDO" : "APAGADO") << "<-\n";
            for (int i = 1; i <= numOptions; i++) {
                std::cout << "[NUMPAD" << i << "] Opción " << i << "\t\t" << (optionStatus[i] ? "ENCENDIDO" : "APAGADO") << "<-\n";
            }
            std::cout << "[INSERTAR]  Salir\n";
            std::cout << "--------------------------------------------------\n";
    
            input = getch();
            switch (input) {
                case '1':
                    optionStatus[1] = !optionStatus[1]; // alternar estado de opción
                    break;
                case '2':
                    optionStatus[2] = !optionStatus[2];
                    break;
                // añade casos para otras opciones
                case '0':
                    optionStatus[0] = !optionStatus[0];
                    break;
            }
            // Limpiar la pantalla de la consola
            system("cls");
        } while (input != 27); // bucle hasta que el usuario presione "ESC" para salir
    
        return 0;
    }
    

    Esta implementación utiliza una matriz para almacenar el estado de cada opción y un bucle para mostrar continuamente el menú, actualizar el estado de la opción según la entrada del usuario y limpiar la pantalla de la consola para evitar el desorden.

    Ten en cuenta que el programa utiliza la función “getch()” para leer la entrada del usuario sin esperar un carácter de nueva línea y la función “system(“cls”)” para limpiar la pantalla de la consola en cada iteración.

    Siéntete libre de modificar y personalizar el código para adaptarlo a tus requisitos específicos. ¡Buena suerte con tu programación en C++!</windows.h>

Comments are closed.