Avatar billede lbs Nybegynder
20. november 2000 - 23:36 Der er 18 kommentarer

vent på tastatur tryk

Findes der en kommando som
venter på en hvilken som helst indtastet tast?
jeg prøver med cin >> int
men den er for smart, kræver jeg trykker enter..

jeg skal bruge et eller andet som bare låser det indtil jeg trykker på en tast
Avatar billede cvsac Nybegynder
20. november 2000 - 23:37 #1
du skal bruge kommadoen getche
jeg kan desværer ikke lige huske hvordan man bruger den men slå op i help filen :)
Avatar billede stigc Nybegynder
20. november 2000 - 23:38 #2


getch();


husk at include conio.h
Avatar billede cvsac Nybegynder
20. november 2000 - 23:38 #3
ahh det var jo slet ikke så svært alligevel :)
Avatar billede lbs Nybegynder
20. november 2000 - 23:43 #4
conio.h?
den siger at filen ikke findes..
jeg koder på linux?!?!
Avatar billede lbs Nybegynder
20. november 2000 - 23:57 #5
getchar virker, men den gør præcis som når jeg brug cin
... venter på at jeg trykker retur
Avatar billede jinxed Nybegynder
21. november 2000 - 07:56 #6
conio.h er vist kun lavet til win32 og mac
Avatar billede cheater Nybegynder
21. november 2000 - 12:21 #7
Her er noed...

#include \"conio.h\" //Tror jeg nok...

void vent(void)
{
  while (!kbhit()){}
}
Avatar billede cheater Nybegynder
21. november 2000 - 12:23 #8
ahhh... - ingen conio.h... - den missede jeg lige.. :(
Avatar billede soepro Nybegynder
22. november 2000 - 10:49 #9
Hvis du blot vil vente på en hvilken som helst tast er dette løsningen:

  char c = getch();

getch() skulle være standard ANSI C, så det må også virke under Linux. Normalt hedder header filen conio.h eller stdio.h, men i C++ Builder hedder den underligt nok condefs.h. Jeg vil foreslå dig at søge gennem dine header-filen efter \'getch\' for at finde ud af hvad den hedder i din Linux compiler. (Norton TS som kører under DOS kan vel også køres under Linux eller ???)
Avatar billede dmk Nybegynder
22. november 2000 - 18:57 #10
Lige præcis dette problem har været diskuteret før, og dengang fandt vi vist ingen løsning.... getch() findes ikke på Linux, og det gør kbhit heller ikke!

DMK
Avatar billede lbs Nybegynder
23. november 2000 - 03:28 #11
jeg har luret mine header filer igennem..
det eneste som ligger der er getchar()
og den virker som cin >> var
den venter på et retur.
Avatar billede mads_97 Nybegynder
24. november 2000 - 13:42 #12
Som headerfil slutter de fleste på .h, der er dog i nogle tilfælde hvor dette ikke virker.
Her kan man:

#include<conio>
#include<dine andre filer uden \".h\">
using namespace std;

int main()
{
XXX
}

Prøv at se om det virker.
Avatar billede lbs Nybegynder
25. november 2000 - 04:31 #13
ehm nope desværre mads.
som nævnt foroven eksisterer conio(med eller uden h) ikke til alle platforme
ikke til linux som jeg bruger.
Avatar billede soepro Nybegynder
27. november 2000 - 08:54 #14
lbs >> Måske misforstod du mit svar ?!?! Det ER \'getch\' du søger efter ikke sandt ?!? conio er jo bare navnet på den header fil i NOGLE compilere hvori getch funktionen ligger !!! I f.eks. C++ Builder er der flere af header-filerne som hedder .hpp
Avatar billede cvsac Nybegynder
01. marts 2001 - 12:29 #15
ok burde du ikke lige acceptere / ikke acceptere nogle svar ??? spmet er jo timeligt gammelt :)
Avatar billede cipherz Nybegynder
14. juli 2001 - 19:48 #16
jeg tror svaret ligger i curses :)

#include <curses.h>

void main()
{
      initscr();
      printw(\"%s\",\"Press a key\");
      while(!getch())
      {
     
      }
      endwin();
}

g++ -I/usr/include filnavn -o output -lncurses
// Lars Advice A/S
Avatar billede heyn Nybegynder
27. august 2007 - 06:54 #17
Husk at keyboard returnerer alle funktionstasterne F1 - F12 som 2 karakterer.
Den første er [ESC]. Den anden må du lave et lille program og teste dig frem til, da jeg ikke kan huske dem.

Altså vil tast på F2 medfører at keyboard returnerer [ESC][EN ANDEN KARAKTER].

Det gælder i øvrigt ikke kun for F1 - F12. Også andre speciel taster tilhører denne gruppe.
Specialtaster der ikke findes på det gode gamle standardtastatur 102 kan dog godt give forskellig returværdi alt efter hvilket keyboard man anvender. Det ser man f.eks. på bærbare computere.

Skal man anvende den type karakterer, skal man være meget omhyggelig med at teste før release. Helst på både stationære og bærbare computere.

Mvh Christian
Avatar billede heyn Nybegynder
27. august 2007 - 06:57 #18
Jeg 'taler' af dårlig erfaring ;)

Christian
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