Odczyt przycisków z klawiatury

0

Cześć mam problem. Próbuję napisać kod, który jak wcisnę ENTER wyświetli mi że został on wciśnięty. Muszę wesprzeć się biblioteką <conio.h> i użyć funkcji getch()

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    char znak;
        znak = getch();

        if (znak >= 97 &&  znak <= 122)
            cout << znak << "- mala litera" << endl;
        
        else if(znak >=65 && znak<=90)
            cout << znak << "- duza litera" << endl;

        else if((int)(znak)==27)
        cout << "znak: ESC " << (int)(znak) << endl;
        
        else if((int)(znak)==13)
        cout << "znak: ENTER " << (int)(znak) << endl;

Już to rozgryzłam, problem ze strzałkami i F1, wiem tylko, że muszę wywołać fukcję podwójnie, ale nie wiem jak to zrobić

1
olala_ napisał(a):

Już to rozgryzłam, problem ze strzałkami i F1, wiem tylko, że muszę wywołać fukcję podwójnie […]

Klawisz strzałki w buforze klawiatury reprezentowany jest nie przez jeden znak, a przez dwa. Jeśli wciśnięto klawisz rozszerzony lub funkcyjny, to najpierw w buforze znajdzie się kod null (czyli kod 0), a po nim kod konkretnego klawisza (rozszerzonego). Tak więc w takim przypadku trzeba dwa razy pobrać znak z bufora klawiatury.

Co musisz zrobić:

  • pobrać kod klawisza,
  • sprawdzić czy jest równy 0 i jeśli tak:
    • sprawdzić czy coś jeszcze znajduje się w buforze i jeśli tak:
      • pobrać drugi raz kod klawisza (tu: rozszerzonego).

Niestety z kodem nie pomogę, bo nie znam na tyle C++.

1

coś tego typu:

znak = getch();
if (znak == 0)
{
    znak = getch();
    if (znak == 13)
        cout << "ENTER" << endl;
}

nie sprawdzane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1