GetAsyncKeyStates(), ale inne...

0

Cześć,
potrzebuję funkcji, która działa ja GetAsyncKeyStates, ale trochę innej. Otóż, jeśli chcę sprawdzić cz y w konsoli został wciśnięty ty enter robię to tak:

...
if(GetAsyncKeyStates(VK_RETURN)) { .. tu reakcja na enter... }
...

to wtedy warunek jest prawdziwy tylko wypadku kiedy jakiś tekst wprowadzę i kliknę enter. Ja jednak chciałbym po prostu klikać enter i aby warunek był prawdziwy...

0
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;

int main()
  {
   while(true)
     {
      if(GetAsyncKeyState(VK_RETURN)>>15) cout<<"\rENTER";
      else if(GetAsyncKeyState(VK_TAB)>>15) cout<<"\rTAB  ";
      else if(GetAsyncKeyState(VK_SPACE)>>15) cout<<"\rSPACE";
      else cout<<"\r     ";
     }
   return 0;
  }

A ja chcę samochód tylko trochę inny - chciałbym nim jeździć po drogach.

0

Właśnie tak mam to zrobione ;/

std::cin >> cmd;
if(GetAsyncKeyState(VK_RETURN)>>15) std::cout << "\rdadasdad" << std::endl;
0

Zamiast wyjaśnić problem, dajesz przykład funkcji która nie robi tego co chcesz ;-)

Bo nie wiem — czy chcesz zasymulować programowo naciśnięcie klawisza, czy chcesz po prostu czekać na klawisz?

0

Więc pewnie program czeka gdzieś na coś innego.

0

Sytuacja jest taka:

  • program wyświetla napis "wpisz: " i czeka aż użytkownik wpisze tekst

  • następnie sprawdza czy tekst jest poprawny. Jeśli jest wykonuje się to do czego jest przypisany, np. wpisanie "exit" powoduje zamknięcie programu.

  • jeśli tekst nie jest znany to wszystko działa ok, program pyta jeszcze raz

  • w sytuacji kiedy użytkownik nic nie wpisze i naciśnie enter pytanie ma się wyświetlić jeszcze raz

0
char buf[32];
while(true)
  {
   cout<<"wpisz: ";
   cin>>setw(sizeof(buf)-1)>>buf;
   cin.sync();
   if(!*buf) continue;
   cout<<"Wpisano: "<<buf<<endl<<endl;
  }
0

A nie lepiej:

std::string input;
while(true)
{
    std::getline(std::cin, input);
    if(input.length() == 0) continue;

    std::cout << "Wpisano: " << input << std::endl;
}
0

@byku_guzio Woah! Dzięki, działa! :)

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