C++: Wykonywanie programu do naciśnięcia klawisza ESC

Witam. Na początek zarzucę kod funkcji głównej

int main()

{

    do

    {

          system();

          liczba();

          sprawdz();

          liczenie();

          cout<
          cout<
          cout<
          pokaz();

          getch();

          system("cls");

          pot=0;

          wyjscie=0;

          }

          while(getch()!=27);

    return 0;

}

I o co mi chodzi:

Otóż chciałbym zrobić coś takiego, że po wykonaniu procedurki pokaz(); , która wyświetla mi wynik, ekran się zatrzymał i po naciśnięciu dowolnego klawisza niejako program rozpoczął się od procedury system(), chyba że naciśnięty klawisz to ESC - wtedy wyjdź z programu. No i efekt zamierzony niby osiągnąłem, ale nie jestem z niego zadowolony, bo jeden szczegół mnie irytuje. Pierwsze wciśnięcie klawisza ESC nie wychodzi z programu (innego oczywiście też nie), tylko czyści ekran i znowu czeka na klawisz. Dopiero drugie wciśnięcie ESC kończy program, a innego zaczyna go od początku. I teraz moje pytanie - czy można zrobić tak, by po policzeniu wyniku ekran zatrzymywał się i od razu, po pierwszym ESC kończył się? Getch w pętli do while zrobiłem właśnie po to, by zatrzymać ekran, by można było odczytać wynik. Gdybym go usunął, wynik się policzy, ale od razu wyczyści się ekran, bez możliwości odczytania go. Wtedy 1szy ESC wychodzi od razu z programu. Ja chcę, by wynik się wyświetlił, ekran zatrzymał jednocześnie czekając na ESC, by zakończyć lub inny klawisz, by wykonywać od nowa.

Mam nadzieję, że zrozumiale w miarę to napisałem. :wink:

Mam Windows 7 Profesional, a używam do kompilacji Dev C++ 4.9.9.2. Kodzę również w C++.

do{

  pokaz();

  if(getch()==27)

    break;

  system('cls');

}while(1)

Proste, a jednocześnie genialne! Że też człowiek sam na to nie wpadł… #-o

Dziękuję ślicznie! :slight_smile:

Temat można zamknąć.