Buonasera,
non riesco a capire come usare la libreria time.h del C per stampare a video
il mese corrente e anno corrente
Per esempio se il mese è febbraio e l'anno è 2009
vorrei poter stampare a video "febbraio 2009".
Buonasera,
non riesco a capire come usare la libreria time.h del C per stampare a video
il mese corrente e anno corrente
Per esempio se il mese è febbraio e l'anno è 2009
vorrei poter stampare a video "febbraio 2009".
LE DONNE:
COME E' POSSIBILE SPERARE DI CAPIRLE SE LORO STESSE NON RIESCONO A FARLO?
time.h è un header, non una libreria.la libreria time.h del C
Comunque:
.codice:#include <time.h> #include <locale.h> int main(void) { char str[255]=""; time_t t; setlocale(LC_ALL,""); time(&t); strftime(str,sizeof(str),"%B %Y",gmtime(&t)); puts(str); return 0; }
Una considerazione personale: ma quanto sono brutte le funzioni di data/ora del C? Quando si decidono a cambiarle?
Amaro C++, il gusto pieno dell'undefined behavior.
grazie per la risposta!!
vorrei poter salvare mese e anno su due variabili distinte per poterle riutilizzare in seguito.
Come posso fare?
LE DONNE:
COME E' POSSIBILE SPERARE DI CAPIRLE SE LORO STESSE NON RIESCONO A FARLO?
Frequentate tutti la stessa universita' ?Originariamente inviato da MItaly
time.h è un header, non una libreria.
Concordo ... ma non penso si cambieranno ...Una considerazione personale: ma quanto sono brutte le funzioni di data/ora del C? Quando si decidono a cambiarle?
No MP tecnici (non rispondo nemmeno!), usa il forum.
Perche' non dai un'occhiata alla struttura time_t ?Originariamente inviato da jaso
grazie per la risposta!!
vorrei poter salvare mese e anno su due variabili distinte per poterle riutilizzare in seguito.
Come posso fare?
Ovvero, ai componenti della tua variabile t ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
scusate, io pensavo che i file .h fossero file di libreria
che cosa sono allora i file di libreria?
cmq ho risolto da solo per la mia precedente domanda
int main(void)
{
char mese[255]="";
char anno[255]="";
time_t t;
setlocale(LC_ALL,"");
time(&t);
strftime(mese,sizeof(mese),"%B",gmtime(&t));
strftime(anno,sizeof(anno),"%Y",gmtime(&t));
puts(mese);
puts(anno);
system("pause");
return 0;
}
LE DONNE:
COME E' POSSIBILE SPERARE DI CAPIRLE SE LORO STESSE NON RIESCONO A FARLO?
I file .h sono header, che contengono i prototipi delle funzioni che si trovano in altri file .c da compilare o già compilate nelle librerie statiche. Queste ultime hanno solitamente estensione .lib o .a, e contengono codice già compilato che viene unito con i vari moduli oggetto generati dal compilatore al momento del linking.Originariamente inviato da jaso
scusate, io pensavo che i file .h fossero file di libreria
che cosa sono allora i file di libreria?
In pratica: nel file .h ci sono le dichiarazioni che spiegano al compilatore come sono fatte le funzioni che intendi usare. Se il compilatore non trova subito la definizione di queste funzioni nel tuo file .c, inserisce nel modulo oggetto che va a generare un appunto del tipo "qui manca una funzione; linker, pensaci tu". Il linker si prende in pasto tutti i moduli oggetto (derivanti dalla compilazione di tutti i file .c) e le librerie (che sono più o meno analoghe ai moduli oggetto, ma che sono già pronte compilate), e li mette insieme, rimpiazzando tutti questi "appunti" del compilatore con chiamate al codice effettivo di queste funzioni che trova negli altri moduli oggetto o nelle librerie. Alla fine di tutto il processo viene generato l'eseguibile.
Originariamente inviato da oregon
Frequentate tutti alla stessa universita' ?
Be', ma io non capisco cosa avessero nel cervello quando hanno fatto il C99: tanto gli costava dichiarare deprecate tutte queste funzioni di time.h (funzioni di libreria standard non rientranti che restituiscono puntatori a buffer interni... pazzi criminali! VVoVe: ) nonché le funzioni non sicure (gets in primis, e tutte le altre a seguire) e introdurre delle varianti sicure (tipo le versioni _s di Visual C++), invece di inventarsi un boolean non compatibile con il C++? Mah...Concordo ... ma non penso si cambieranno ...
Amaro C++, il gusto pieno dell'undefined behavior.
Oltre ad introdurre cose strane comeOriginariamente inviato da MItaly
Mah...
int a[n];
con n variabile che, secondo me, sta incasinando un sacco di studenti ...
P.S. Volevo scrivere "andate tutti alla stessa università" poi ho scritto "frequentate" ma "alla" è rimasto ... ovviamente e'
"Frequentate tutti la stessa università" ?
No MP tecnici (non rispondo nemmeno!), usa il forum.
grazie ho capito!
arrivederci
LE DONNE:
COME E' POSSIBILE SPERARE DI CAPIRLE SE LORO STESSE NON RIESCONO A FARLO?
Ma vedi, questo non sarebbe neanche troppo malvagio se venisse spiegato agli studenti come funziona (spiegando magari come funzionano in generale le variabili automatiche, cosa sono stack frame e stack pointer) e quando è il caso di preferirlo all'allocazione nell'heap. Il problema è che questi "dettagli" non vengono mai spiegati nei libri introduttivi e tantomeno all'università (come abbiamo visto negli ultimi thread... ).Originariamente inviato da oregon
Oltre ad introdurre cose strane come
int a[n];
con n variabile che, secondo me, sta incasinando un sacco di studenti ...
Amaro C++, il gusto pieno dell'undefined behavior.