Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wychodzenie z zagnieżdzonej pętli z zastosowaniem switch case c++

Ostatnio zmodyfikowano 2016-03-30 21:22
Autor Wiadomość
metyl1988
Temat założony przez niniejszego użytkownika
Wychodzenie z zagnieżdzonej pętli z zastosowaniem switch case c++
» 2016-03-30 20:15:56
Witam,
  mam problem przy wyjściu z drugiej instrukcji switch case. Aby wrócić w poniższym wypadku do poprzedniego " menu " muszę dwukrotnie kliknąć ESC?
Zastosowałem getch() == 27.
Co zrobić aby po jednym kliknięciu ESC wychodzi do poprzedniego kroku ?

Poniżej przykładowy kod:

C/C++
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    int liczbe;
    int liczbe_1;
    do
    {
        cout << "Poczatek !!! \n1. Pierwsza opcja.\n2. Druga opcja.\n3. Wyjscie." << endl;
        cout << "Podaj liczbe: ";
        cin >> liczbe;
        cin.clear();
        cin.sync();
        if( cin.good() )
        {
            switch( liczbe )
            {
            case 1:
                system( "cls" );
                cout << "Wybrales pierwsza opjce." << endl;
                do
                {
                    cout << "Masz do wyboru trzy opcje:\n1. Dodaj.\n2. Odejmij.\n3. Wroc.\n4. Zakoncz." << endl;
                    cout << "\nJaka opcje wybierasz: ";
                    cin >> liczbe_1;
                    cin.clear();
                    cin.sync();
                    if( cin.good() )
                    {
                        switch( liczbe_1 )
                        {
                        case 1:
                            system( "cls" );
                            cout << "Wybrales dodaj. \nJesli chcesz wrocic do poprzedniego menu wcisnij ESC" << endl;
                            if( getch() == 27 )
                            {
                            }
                            else
                            {
                                exit( 0 );
                            }
                            break;
                        case 2:
                            system( "cls" );
                            cout << "Wybrales odejmij." << endl;
                            break;
                        case 3:
                            system( "cls" );
                            cout << "Wybrales wroc." << endl;
                            break;
                        case 4:
                            system( "cls" );
                            cout << "Wybrales zakoncz." << endl;
                            break;
                            default:
                            system( "cls" );
                            cout << "Wybrales bledna wartosc." << endl;
                            break;
                        }
                    }
                } while( cin.fail() || liczbe_1 > 4 || liczbe_1 < 1 || getch() == 27 );
               
                break;
            case 2:
                system( "cls" );
                cout << "Wybrales druga opjce." << endl;
                break;
            case 3:
                system( "cls" );
                cout << "Wybrales wyjscie z programu." << endl;
                break;
                default:
                system( "cls" );
                cout << "Wybrales bledna wartosc." << endl;
                break;
            }
        }
    } while( cin.fail() || liczbe > 3 || liczbe < 1 || liczbe_1 == 3 );
   
    return 0;
}
[ \c pp ]
P-146786
carlosmay
» 2016-03-30 21:22:34
Przechowaj to co zwraca getch() i używaj w warunkach tej zmiennej.
P-146806
« 1 »
  Strona 1 z 1