I am trying to run a program with countdown, but in counter it is not decreasing

0
#include "stdafx.h"
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;


int main()
{

    int counter, number_1, number_2;
    string resposta, resposta_2, responder, responder_2, resp = "lol";
    bool verdadeiro = true;


    while (verdadeiro) {

        cout << "A) Executar um pequeno quiz\n" << "B) Sair do programa\n";
        cin >> resposta;


        if (resposta == "A") {
            resposta_2 = "true";
            counter = 10;

        }


        else if (resposta == "B") {
            verdadeiro = false;
        }


        while (resposta != "A" && resposta != "B") {
            cout << "digite novamente apenas A ou B\n";
            cin >> resposta;

            if (resposta == "A") {
                resposta_2 = "true";
                counter = 10;

            }

            else if (resposta == "B") {
                verdadeiro = false;
            }
        }

        while (resposta_2 == "true") {

            while (counter > 0) {

                counter--; // Faz a contagem regressiva(porem nao esta funcionando)
                Sleep(1000);
                cout << counter;

                if (counter == 0) { // E volta para o menu inicial
                    resposta_2 = "false";
                }

                cout << "Em que ano teve inicio a 2 guera mundial?\n";
                cin >> responder;



                if (responder == "1939") {
                    cout << "Muito bem acertou , o quiz acabou deseja sair do programa ou voltar par o menu?\n";

                }

                else {
                    cout << "Errou acabou o jogo\n";
                    counter = 0;
                    resposta_2 = "Nao";
                }

                cout << "Digite Sim para voltar ao menu principal ou Nao para sair\n";
                cin >> responder_2;
                while (responder_2 != "Sim" && responder_2 != "Nao") {
                    cout << "Digite apenas Sim ou Nao\n";
                    cin >> responder_2;
                    if (responder_2 == "Sim") {
                        counter = 0;
                        resposta_2 = "false";
                    }
                    if (responder_2 == "Nao") {
                        counter = 0;
                        resposta_2 = "false";
                        verdadeiro = false;
                    }
                }

            }
        }
    }

    return 0;
}
    
asked by anonymous 25.08.2016 / 07:32

1 answer

0

When you type yes or nothing happens, you have not put a condition to lock the loop (counter > 0). And when you type anything other than " yes " / " no " enters the loop

while (responder_2 != "Sim" && responder_2 != "Nao")

Use the logical OR operator (||) to lock the loop, I suggest using a break ;

    
21.09.2016 / 14:23