Skocz do zawartości

Zablokowane klawiatura w c++


Rekomendowane odpowiedzi

Opublikowano

Cze

mam pytanie

jak zrobić coś takiego że w c++ obsługuje też takie przyciski jak enter czy esc

załóżmy mam taki program

#include <iostream>

using namespace std;

int main ()
{ 
    char quit;  

    quit = '\0';
    while (quit != 'q')
    {
        cout << "Hello ! This is a console app." << endl;
        cout << "To create a console, go to Project Options and select" << endl;
        cout << "\'Win32 Console\'." << endl;
        cout << "Press q to quit " << endl;
        cin >> quit;
    }

    return 0;
}

i żeby zamiast q trzeba było wcisnąć esc lub enter jak takie coś zrobić

 

z góry thx

Opublikowano

Nie wiem czy tak jest w C++, ale np. w Pascalu można wpisywać kody znaków klawiatury. Np. zamiast ESC wpisuje się 27, to wtedy w tym kodzie, jakbyś chciał ESC, to by wyglądało tak:

while (quit != 27)

Nie jestem pewien tego, musisz sprawdzić.

Opublikowano

chyba w ogóle całą pętle trzeba inaczej napisać ale problem w tym żę nie wiem jak ^^

 

edit:

oto co wykombinowałem mieszając c++ z Pascalem od razu mówię że kod nie działa bo trudno by funkcje z Pascala działały w c++ ale chciałem żebyście zobaczyli co chce osiągnąć

#include <iostream>

using namespace std;

int main ()
{ 
    char key;  

    quit = '\0';
    do {
        if KeyPressed  // Funkcja z Pascala
        key=ReadKey; //Funkcja z Pascala
        if (key=='77')
        {
        cout << "Hello ! This is a console app." << endl;
        cout << "To create a console, go to Project Options and select" << endl;
        cout << "\'Win32 Console\'." << endl;
        cout << "Press q to quit " << endl;
        }    
    } while(key!='27');

    return 0;
}

gdybym tylko wiedział jak napisać te dwie funkcje w c++ if KeyPressed , quit=ReadKey;

Opublikowano

Spróbuj z case ale nie wiem jak zrobić zeby enter i escape działał.

np.

case p: // Po nacisnieciu "p"

Ale nie wiem czy to oto chodzi, bo sie pogubilem :P

Opublikowano

a mógł byś mi dać prosty przykład z zastosowaniem tego case

bo tu dałeś mi tylko funkcje i co ja mam z nią zrobić ?? ^^

 

edit :

Jedyne zastosowanie do case które ja znam to jest we switch'u co nie rozwiązuje mego problemu no ale ja jestem nowicjuszem więc może jest jeszcze jakieś zastosowanie do tego które ja nie znam ^^

Opublikowano

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

using namespace std;

int main ()
    {
    char quit = false;
    
    cout << "Wcisnij 'Esc' aby zakonczyc prace programu.";
    
    while (!quit)
          {
          if (getch() == 27)
             {
             return 0;
             }
          }

    return 0;
    }

O coś takiego ci chodziło?

Opublikowano

wielkie dzięki Zakol dokładnie o coś takiego mi chodziło

 

Edit:

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

using namespace std;

main ()
{ 
    char key;  

    do {
        key=getch();
        if (key == 'A')
        {
        cout << "Hello ! This is a console app." << endl;
        cout << "To create a console, go to Project Options and select" << endl;
        cout << "\'Win32 Console\'." << endl;
        cout << "Press q to quit " << endl;
        }   
    } while(key != 27);
  }

tak teraz wygląda kod i wszystko działa tak jak chciałem ^^

  • 3 miesiące temu...
Opublikowano

przed return sprubuj wpisac getchar(); to powoduje ze po nacisnieciu entera sie wylacza

a jezeli nie chcesz zeby ci sie wylaczalo np. zeby potwierdzic cos enterem napisz po napisani np. cin>>... cin.ignore(); ignoruje enter

 

edit:sorry nie zauwazylem posta wyzej ale jak ktos chce krotsza wersje to ma

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...