PDA

Visualizza la versione completa : [C] Stampa di STRUCT TM


Smoke666
05-04-2012, 16:48
Ciao a tutti, devo stampare solo determinati campi (ovvero giorno, mese e anno) di una struct tm. Come posso fare? Ho provato diverse funzioni, quella che mi aveva quasi risolto il problema è la strftime, ma mi stampa semplicemente 0-0-0 indipendentemente dal valore contenuto nella struct. Qualcuno ha qualche suggerimento?

oregon
05-04-2012, 16:51
E cosa hai scritto?

Smoke666
05-04-2012, 16:53
struct tm t;
tx=mktime(&t);
strftime(buff, 50, "%Y-%m-%d %H:%M:%S", localtime(&tx));

Questa stampa sempre 0-0-0...

oregon
05-04-2012, 17:00
Semmai



time_t tx;
time(&tx);
strftime(buff, 50, "%Y-%m-%d %H:%M:%S", localtime(&tx));

Smoke666
05-04-2012, 17:03
Ma


time(&tx);

Mi da la data attuale, a me serve stampare la data che è contenuta nella struct tm...

oregon
05-04-2012, 17:05
Ma nella struct tm non c'è nessuna data ...

Smoke666
05-04-2012, 17:11
Ma la struct tm contiene i seguenti campi:



tm_sec
tm_min
tm_hour
tm_mday
tm_mon
tm_year
tm_wday
tm_yday
tm_isdst


Io devo stampare solo tm_mon, tm_mday e tm_year...solo che devo prima convertirli, perchè non posso fare ad esempio

printf("%s", struttura->tm_wday)...

oregon
05-04-2012, 17:14
Chi ti ha detto che non puoi farlo ? Puoi scrivere



struct tm t;

printf("%d\n", t.tm_year);


ma tra le due righe devi prima assegnare i dati alla struttura, altrimenti che data dovrebbe esserci?

Smoke666
05-04-2012, 17:28
Prima ho fatto in quel modo, con la printf e mi ha dato un errore....Ora riprovo, magari ho sbagliato a scrivere. Comunque i dati alla struttura sono assegnati da un'altra funzione che viene eseguita prima...

oregon
05-04-2012, 17:29
Allora fai vedere il codice effettivo ...

Loading