Tags
Forum
Artikler
Brugere
Stil spørgsmål
1
online
Login
Husk mig
funktion til aflæsning af tastaturinput
Tags:
c++
databaser
Bruger #65
@ 01.12.03 15:04
1
539
jeg har bruge for en funktion/kommando der kan aflæse hvad bruger trykker uden at standese programmet!
jeg har prøvet at brug kbhit() men det retunere bare -1 når en tast er trykke uanset hvad, jeg har også prøvet at bruge scanf("%c",ch); og ch=getch();
men disse standsede programmet!
mvh.
Thomas Christensen
7
svar postet i denne tråd vises herunder
2
indlæg har modtaget i alt
3
karma
Sorter efter stemmer
Sorter efter dato
2
Bruger #1445
@ 03.12.03 02:37
209
Hej Thomas Christensen
Er det dos eller Windows du programmere programmer til. Jeg gætter på det er dos, for det ville ikke være noget problem hvis du programmeret i Windows, hvor det forslåes at du anvender Tråde (samme måde som at anvende flere programmer)....
Hvis det er i dos du programmere er det kbh() du skal bruge til at finde udaf om der er trykket på en tast og herefter skal du vist læse tasten med getch(), men kan ikke helt huske det er nogle år siden jeg har anvendt denne....
Mvh
Janus S. Andersen
P.s Anvend kbh() til at se om der er trykket på en tast, og læse derefter denne tast. (Brug ikke scanf eller nogle af disse. Brug en funktion der kun læser en tast fra keyboardet.)
1
Bruger #3941
@ 05.12.03 00:51
15
her er løsningen...(og nej man ska ik bruge threads...jesus)
kbhit() er god nok...den siger til hvis der er trykket på en knap
men den siger ikke hvilken knap. det skal du bruge getch() til.
med mindre det er meget vigtigt at der ikke spildes en eneste cpu cycle på at chekke hver enkelt knap, så behøves kbhit slet ikke. getch() er mere end nok, f.eks :
#include <stdio.h>
#include <conio.h>
void main ()
{
int i=0;
bool done=false;
while (!done)
{
switch (getch())
{
case 'a':
i--;
break;
case 'd':
i++;
break;
case 27: // 27 er koden for escape
done=true;
break;
}
/* den næste linie sætter først cursoren ved starten af linien (\\r) og derefter skriver den tallet i efterfulgt af nogle mellemrum til at slette hvad nu end for et stort tal der måske stod der før*/
printf("\\r%d ",i);
}
}
0
Bruger #285
@ 01.12.03 15:33
524
Uden at vide tror jeg, at du skal lave flere threads i programmet...
mikl-dk | mikl@mikl.dk
0
Bruger #65
@ 01.12.03 15:35
1
539
Uden at vide tror jeg, at du skal lave flere threads i programmet...
mikl-dk | mikl@mikl.dk
threads?
-thomas
0
Bruger #285
@ 01.12.03 20:17
524
Ja, jeg ved ikke helt, hvordan det skal forklares (nok også pga., at jeg ikke er så meget inde i det
) - men det er noget med at man kan flere ting simultant i et program. Prøv at google det...
mikl-dk | mikl@mikl.dk
0
Bruger #1445
@ 07.12.03 18:55
209
Jeg hedder ikke Jesus, fætter !
Hvad skal du programmere ???
Mvh
Janus
* Life is a dream in a programmers heaven *
0
Bruger #2695
@ 15.12.03 15:42
5
1.963
Uden at vide tror jeg, at du skal lave flere threads i programmet...
mikl-dk | mikl@mikl.dk
Eller med et kald til select. Select tjekker en filedescriptor (socket, åben fil, standard in, whatever) om der kan læses fra/skrives til den og returnerer efter en given tid. Bruge den til at tjekke om stdin køen er tom.
Karma barometer (30 dage)
Modtaget
Givet
X
Favorit hos
Forum tråde
Artikler
Tilføj til dine favorit tags
Fjern fra dine favorit tags