Avatar billede cnp23 Nybegynder
06. februar 2003 - 09:22 Der er 7 kommentarer og
1 løsning

tidsbestemt løkke HVORDAN?

Hvordan kan man lave en løkke i c++ som er tidsbestemt?
Avatar billede arne_v Ekspert
06. februar 2003 - 09:31 #1
Tja.

#include <time.h>

time_t start = time(NULL);
while(time(NULL) < (start + 10)) {
  ...
}

skulle loope i 10 sekunder.

Hvis du på nogen måde kan undgå den slags loops bør du gøre det.

De kan være ret CPU krævende og hvis du laver sleep, så bliver
den ikke særlig responsiv.
Avatar billede jpk Nybegynder
06. februar 2003 - 09:31 #2
Er du sikker på det er en løkke du vil have?
Du kan bare kalde sleep metoden hvis du vil have et delay, fx;

sleep(1000); // "Sover" i 1 sekund (det er millisekunder)
Avatar billede cnp23 Nybegynder
06. februar 2003 - 11:15 #3
Jeg skal bruge en løkke men den skal ikke kun køre på tid den skal også kunne stoppes af et input.
Avatar billede jpk Nybegynder
06. februar 2003 - 11:21 #4
Det var jo en ret vigtig detalje!
Hvilken type input drejer det sig om?
Er det et Windows-program?
Avatar billede arne_v Ekspert
06. februar 2003 - 11:53 #5
#include <time.h>

time_t start = time(NULL);
int cont = 1;
while(cont && (time(NULL) < (start + 10))) {
  ...
  // user input can set cont = 0 if loop is to terminate
  ...
}

skulle loope intil bestemt bruger input eller 10 sekunder er gået.
Avatar billede jpk Nybegynder
06. februar 2003 - 12:01 #6
arne_v >> så skal cont jo ændres fra en anden tråd eller der skal tjekkes (non-blocking) på input i løkken...
Avatar billede arne_v Ekspert
06. februar 2003 - 12:07 #7
jpk>

Ja test på bruger input skal være non-blocking.

kbhit for gamle DOS programmører.
Avatar billede cnp23 Nybegynder
06. februar 2003 - 12:18 #8
jpk jeg opretter lige et spørgsmål så kan du få 15 point for din indsats.
En anden muglighed er jo også at trække 10 fra start.
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