Necesito ayuda sobre cómo hacer un bucle dentro de un caso que está dentro de un bucle do-while.
Estoy tratando de hacer un bucle while (true) dentro de un caso con un bucle do-while, pero cuando pongo el while (true) en el caso, el menú no vuelve a la consola y necesito cerrar el depurador y ejecutarlo nuevamente. ¿Puede alguien ayudarme? Soy nuevo en c++.
Aquí está mi código:
do
{
std::cout << "[0] Salir\n"; // Esta es la Opción 0 del Menú
std::cout << "[1] Salud Infinita\n"; // Esta es la Opción 1 del Menú
std::cout << "[2] Munición Infinita\n"; // Esta es la Opción 2 del Menú
std::cout << "[3] Rondas Infinitas\n"; // Esta es la Opción 3 del Menú
std::cin >> choice;
switch (choice) // Esto es para detectar la opción que seleccionó el usuario
{
case 0:
std::cout << "¿Por qué me abriste si no me vas a usar? :(\n";
return 0;
case 1:
std::cout << "¡Has activado la Salud Infinita!\n";
while (true)
{
int health = 1000;
WriteProcessMemory(phandle, (LPVOID*)(healthPtrAddr), &health, 4, 0);
}
break;
case 2:
std::cout << "¡Has activado la Munición Infinita en el Arma Principal!\n";
while (true)
{
int ammo = 500;
WriteProcessMemory(phandle, (LPVOID*)(ammoPtrAddr), &ammo, 4, 0);
}
break;
case 3:
std::cout << "¡Has activado las Rondas Infinitas en el Arma Principal!\n";
while (true)
{
int rounds = 200;
WriteProcessMemory(phandle, (LPVOID*)(roundsPtrAddr), &rounds, 4, 0);
}
break;
}
}
while (choice != 0);
davy.ai
El problema con el código es que el bucle infinito while dentro del switch case está haciendo que el programa se bloquee y se vuelva irresponsivo. Para solucionar este problema, puedes modificar la condición del bucle para verificar una variable que se establece en true cuando el usuario quiere salir del bucle.
Aquí tienes una versión actualizada del código:
Al establecer
exitLoop
en true cuando el usuario selecciona la opción 0, el programa saldrá del bucle y terminará. De lo contrario, el bucle seguirá ejecutándose hasta que el usuario seleccione la opción 0 para salir.