Newsgroup: it.comp.lang.c++
Titolo: HELP sto cercando di costruire una sveglia... ma non ne vengo fuori :P

Spero di non essere OT...
Sto cercando di programmare in C++ una specie di sveglia...
o meglio vorrei creare un ciclo che prendendo la data e l'ora di sistema li
confronti con data e ora da me inseriti e a quel punto esca dal ciclo e
continui con l'esecuzione del programma.
Insomma pensavo a una specie di avviso per appuntamenti... una cosa
simile... chiaro a livello molto molto elementare.
Mi andrebbe bene anche solo il confronto dell'ora...
Ci sto provando + per diletto che altro...
Be'... vi scrivo quello che ho fatto fin'ora... anche se veramente non
funziona.
Ehmm.... vorrei chiarire... io non so molto di c++... quindi non ridete
troppo :)
#include <iostream.h>
#include <time.h>
#include <fstream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
 time_t now;
 struct tm *ptr;
 char *c; file://buf1[80];
 time(&now);
 ptr = localtime(&now);
 c = asctime(ptr);
 cout<<c;
QUESTO MI DAVA SOLO L'ORA E DATA....
MENTRE...
clock_t c;
time_t t;
char* s;
char temp[25]="Thu Oct 03 14:32:40 2002";
double x = 3.14159265358979;
do
{
for (long int i = 0; i < 1000000; i++)
    x = 1 + x/(1+x);
c = clock();
t = time(NULL);
s = ctime(&t);
cout << "data corrente = " << s << endl;
cout<<"Temp"<<temp <<endl;
}while(strcmp(s,temp)!=0);
cout<<"ciao";
CON QUESTO SPERAVO DI RIUSCIRE... MANON FUNZIONA
P.S. EHMM FORSE DENTRO C'E' PURE QUALCOSA DI C.
AVEVO PENSATO PURE DI SALVARE L'ORA CORRENTE SU UN FILE... POI LEGGERLA DA
FILE.. E POI CONFRONTARLA... MA NON MI FUNZIONA.
Sapete aiutarmi.... consigliarmi... insomma sapete dirmi come si fa :)
Grazie a tutti.

>  char *c; file://buf1[80];
ehmmm... file://buf1[80];
non centra niente :)

 Sto cercando di programmare in C++ una specie di sveglia...
Boh, questo funziona:
-----------------------------
#include <iostream>
#include <ctime>
#include <cstring>
#include <cstdlib>
int main(){
    time_t t;
    char* s;
    char temp[26]="Wed Oct 09 00:06:00 2002\n";
    do{
        t = time(NULL);
        s = ctime(&t);
    }
    while(strcmp(s,temp)!=0);
    std::cout<<s<<std::endl;
    return 0;
}
---------------------------
In pratica ti eri dimenticato il '\n' alla  fine della stringa... comunque,
se devo essere sincero, un programma come questo non mi convince molto
perche':
1) confronta due stringhe: sarebbe meglio confrontare due long int tipo
time_t, no?
2) la condizione strcmp(s,temp)!=0 e' debole: se viene saltata per un
qualche motivo, il programma continua in loop infinito
3) sarebbe un bel programma da scrivere se ci fosse un qualche meccanismo di
threading dei processi, ma cosi' spreca un po' di risorse inutiliemnte
Per il resto, conviene che tu non usi mai i .h in c++: negli header del c,
metti una c prima, ad esempio time.h -> ctime, sddio.h -> cstdio, ecc,
mentre per il c++ togli la .h e basta: iostream.h -> iostream
Poi main ritorna int!
poi basta!
Ciao,
Zeppe

 qualche motivo, il programma continua in loop infinito
cioe', se viene saltata nel senso se viene saltato l'unico secondo in cui e'
verificata... una condizione forte sarebbe: se il tempo e' maggiore o uguale
di quello che ho impostato, allora avvisami ed esci, se no aspetta. Cosi'
sai di sicuro che non si blocca... magari ci rimane a lungo ma non per
sempre... a meno che non hai scritto una stringa sbagliata (ed e' anche per
questo che la stringa e' brutta...)
Ciao,
Zeppe

GRAZIE... SEI STATO MOLTO GENTILE... E POI SEI STATO L'UNICO A RISPONDERMI
:)
GRAZIE ANCORA DELL'AIUTO.
"Zeppe" <passin...@NOSPAMtiscalinet.NOSPAMit> ha scritto nel messaggio
news:anvlh4$5md$1...@lacerta.tiscalinet.it...


 GRAZIE ANCORA DELL'AIUTO.
Figurati, penso comunque che se non ci fossi stato io ti avrebbe risposto
qualcun altro, prima o poi... ;)
Ciao,
Zeppe