Avatar billede ultragames Nybegynder
31. oktober 2005 - 14:59 Der er 4 kommentarer

piletaster i while

Hej eksperter..

jeg har et lille problem..

jeg skal registrere hvornår der trykkes på en piletast i C.. det skal køres i en while(true), så man hele tiden kan registrere når der trkkes.. det laves i en consol.. h¨ber i kan hjælpe
Avatar billede arne_v Ekspert
31. oktober 2005 - 15:02 #1
hvis du har en DOS compatibel compiler må du have en conio.h og en getch som
returnerer 0 og en kode for pile taster
Avatar billede arne_v Ekspert
31. oktober 2005 - 15:03 #2
det er vist ikke 0 men en anden værdi ...

eksempel:

#include <conio.h>

#include <iostream>

using namespace std;

int main()
{
  cout << "Press keys (ESC to exit)" << endl;
  while(true)
  {
      int c = getch();
      if(c == 0x1B)
      {
        cout << "ESC read" << endl;
        break;
      }
      else if(c == 224)
      {
        c = getch();
        switch(c)
        {
            case 75:
                cout << "left arrow read" << endl;
                break;
            case 77:
                cout << "rigth arrow read" << endl;
                break;
            case 72:
                cout << "up arrow read" << endl;
                break;
            case 80:
                cout << "down arrow read" << endl;
                break;
        }
      }
      else
      {
        cout << (char)c << " read" << endl;
      }
  }
  return 0;
}
Avatar billede ultragames Nybegynder
31. oktober 2005 - 15:07 #3
hmm.. nu sidder jeg i dev c++ 4.. og der får jeg en masse fejl i header filen "iostream" :S

men har sidder og leget lidt med getch og kbhit.. og det gjorde jeg også for nogle år siden.. og mente også at getch reg 1 tryk, og så gik videre.. men det gør den ikke her når jeg tester den i mit C program.
Avatar billede arne_v Ekspert
31. oktober 2005 - 15:21 #4
hvilke fejl ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester