Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - tempo
Forum - C/C++ - tempo

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
ciao,
forse quello che vorrei fare è troppo complicato per me che sono algli inizi, provo a chiedere a voi
stavo facendo un programma che richiede una password, e se la si sbaglia per tre volte durante l'esecuzione  bisogna aspettare un certo periodo di tempo per poter riprovare, vorrei fare in modo che il tempo trascorra in "sottofondo", del tipo che io intanto posso fare altre cose nel programma intanto che il tempo scorre.
ho pensato a sleep(tempo) ma il programma si ferma e no posso fare niente, oppure a


#include <time.h>
#include <iostream>
using namespace std;
clock_t start,end;
double tempo;

int main() {

//blocco inserimento password
if(password sbagliata per tre volte)
{
    start = clock();
// qui continuo a navigare nel programma
    
    end = clock();
    tempo=((double)(end-start))/CLOCKS_PER_SEC;
}
}

ma cosi non so come fare a farlo fermare nel momento giusto e come continuare a navigare nel programma, perchè non posso mettere tutto il programma nel blocco di if

se è troppo complicato lasciate stare, non è importante
grazie

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 18:24
Mercoledì, 02/01/2008
devi avviare il timer in un thread separato, il che è un argomento molto ricco che non si può spiegare in un topic se sei agli inizi.
Un mini tips lo trovi nella sezione dispense sotto C++ e spiega come creare i thread in C++ tramite le API win32.

Una volta che avrai capito come creare i thread quello che covrai fare e avere una variabile flag booleana che indica se il  tempo è finito o meno una che indica se effetivamente era partito, qualcosa così:

if(counting && finito)

in quel caso riproponi la schermata di login e di nuovo se sbagliato conterai 3 errori e al terzo avvierai di nuovo il thread (riguardo i quali cmq cercando su internet trovi molta altra documentazione, in particolare l'MSDN di micrisoft).

Se sei su altri sistemi non saprei dirti quali solo le loro funzioni per creare i thread, sistemi come linux, *bsd ecc... hanno se non erro fork e dintorni ma non saprei dirti di più.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 0:55
Giovedì, 03/01/2008
:(
a ok, se è cosi complicato provero piu tardi quando avro piu conoscenze, grazie

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 11:05
Giovedì, 03/01/2008
qui c'è l'esempio se non l'hai visto:
http://www.pierotofy.it/pages/guide_tutorials/C++/Win32_CP ...

magari prendi quello come modello e modifichi come ti serve.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote