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

Po naciśnięciu klawisza ESC...

Ostatnio zmodyfikowano 2008-06-15 16:15
Autor Wiadomość
E.x.e.r
Temat założony przez niniejszego użytkownika
Po naciśnięciu klawisza ESC...
» 2008-06-15 15:47:57
A może i nie ESC :P Chodzi mi o to aby podczas trwania programu (w każdej chwili) po naciśnięciu klawisza ESC wyskakiwała pewna akcja...
Mam prosty programik wyświetlający tekst:
C/C++
#include <iostream>
#include <conio.h>
#include "console.ddt"
using namespace ddt::console;
using namespace std;
int main()
{
    cout << "Witaj!" << endl;
    unsigned char enter;
    do
    {
        enter = getch();
        while( kbhit() )
             std::cout << std::endl;
       
    } while( enter != 13 );
   
    cout << "Test2" << endl;
    do
    {
        enter = getch();
        while( kbhit() )
             std::cout << std::endl;
       
    } while( enter != 13 );
   
    cout << "Nacisnij przycisk [ESC], aby zakonczyc dzialanie programu!" << endl;
    unsigned char esc;
    do
    {
        esc = getch();
        while( kbhit() )
        {
            esc = getch();
        }
        std::cout << std::endl;
    } while( esc != 27 );
   
    return( 0 );
}

Jak widzimy, pod koniecpo naciśnięciu klawisza ESC wychodz z programu. Jak zrobić aby po naciśnięciu klawisza ESC w dowolnym momęcie wychodziło z progsa ( wykonywała się dana akcja, bądź ciąg akcji) :?
P-850
DejaVu
Obsługa klawisza ESC
» 2008-06-15 16:15:14
Tutaj masz przykład, który chyba robi to o co Ci chodzi.
C/C++
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    cout << "Witaj!" << endl;
    unsigned char znak;
    do
    {
        znak = getch();
        if( znak == 27 )
        {
            cout << endl << "Specjalna obsługa klawisza ESC -> wychodze z petli!" << endl;
            break; //Wyjście z jednej pętli. Jeśli nie chcemy wychodzić z pętli nie piszemy tej linijki
        } else
        {
            cout << znak;
        }
    } while( znak != 13 );
   
    cout << endl << "Koniec!" << endl;
    getch();
    return( 0 );
}
P-851
« 1 »
  Strona 1 z 1