/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
idle loop i konsol app.
Fra : Gonex


Dato : 31-07-02 22:09

Jeg er ved at lave en konsol applikation. Programmet har en idle loop som
skal ligge og lave en et eller andet i hvert "runde". Men samtidig skal jeg
checke for input til programmet, fx et tryk på escape for at afslutte. Hvis
jeg havde en brugerflade (og mit OS er Windows) ville jeg lave noget
lignende:



BOOL fDone = FALSE;

MSG msg;



while (!fDone)

{

while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))

{

if(msg.message == WM_KEYDOWN)

{

//Gør noget. Evt. afslutte programmet.

fDone = TRUE;

}

}

//gør et eller andet hver gang løkken køre.

}



Problemet er at efter som det er en konsol applikation virker det ikke. (Med
mindre jeg har dummet mig på en anden måde).



Hvis jeg evt. prøver at lave noget med fx getchar(), getch(), cin. Osv.
stopper det løkken og venter på input.



Er der nogen der har et forslag til hvordan jeg kan løse problem med at køre
en løkke, og samtidig checke input på en elegant måde. Den eneste løsning
jeg lige i øjeblikket kan se er noget med nogle tråde hvor den ene tråd
kontrollerer input mens den anden tråd ligger og "løkker" og køre
programmet. Men det må da kunne laves smartere, jeg har på fornemmelsen der
er et eller andet simpelt jeg har overset.



Mvh. Mikael.




 
 
Martin Dyring (31-07-2002)
Kommentar
Fra : Martin Dyring


Dato : 31-07-02 23:10

"Gonex" <nospam@for.me> wrote in message
news:3d4851f8$0$1254$edfadb0f@dspool01.news.tele.dk...
> Er der nogen der har et forslag til hvordan jeg kan løse problem med at
køre
> en løkke, og samtidig checke input på en elegant måde. Den eneste løsning
> jeg lige i øjeblikket kan se er noget med nogle tråde hvor den ene tråd
> kontrollerer input mens den anden tråd ligger og "løkker" og køre
> programmet. Men det må da kunne laves smartere, jeg har på fornemmelsen
der
> er et eller andet simpelt jeg har overset.


Hej Michael,

Tråde er nok - alt afhængig af problemets kompleksitet - den pæneste løsning
på dit problem, men hvis du helt vil undgå det kan du tage et kig på
kbhit().

--
Mvh,
Martin Dyring




Gonex (01-08-2002)
Kommentar
Fra : Gonex


Dato : 01-08-02 10:46


> Tråde er nok - alt afhængig af problemets kompleksitet - den pæneste
løsning
> på dit problem, men hvis du helt vil undgå det kan du tage et kig på
> kbhit().

kbhit() er lige præcis sådan en funktion jeg ledte efter. En måde at
kontrollerer for input uden at stoppe eksekvering af programmet. Hvor kunne
den da have gjort livet lettere for mig mange gange gennem tiden, jeg har
desværre aldrig kendt til funktionens eksistens. Takker mange gange.




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste