|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
Inserire ora di sistema in C
sto cercando di stampare a video l'ora di sistema..ovviamente usando il C, su internet ho trovato questo :
char *ctime(time_t *ptr) char *ctime_r(time_t *ptr, char *output) include: <time.h> Note that the parameter must be a pointer to the numeric time. time_t values are produced by time. Converts the time provided into a human-readable string, the format is illustrated by these examples: Mon Jan 18 22:14:07 2038\n Fri Jan 8 12:14:07 2038\n Mon Jan 18 08:20:37 2038\n Fri Dec 13 15:45:52 1901\n Dates are padded with a space if only one digit long, and time components are given leading zeros. The date is always absurdly followed by a newline character, which usually has to be removed. Warning the char* string returned is a static array, every call of ctime uses the same array, so the results of any call are always overwritten by the bext call. Ctime_r is exactly the same as ctime, except that the caller must provide an array of chars big enough to hold the result. The return value is the same as the second parameter. l'esempio che mostra è il seguente..ma non funziona almeno sul mio compilatore, mi dice "`strlen' cannot be used as a function" ammetto che ho capito poco di come stampa l'ora questa funzione ma speravo di cavarmela con l'esempio..mi sapete dire qualcosa? grazie Example: time_t tim=time(NULL); char *s=ctime(&tim); s[strlen(s)-1]=0; // remove \n printf("it is %s now.\n", s); time_t values are produced from the clock by time. time_t values are produced from y,m,d,h,m,s parts by mktime and timegm.
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Così è corretto, garantisco:
Codice:
#include <stdio.h> #include <string.h> #include <time.h> int main (void) { time_t tim = time (NULL); char *s = ctime (&tim); s[strlen(s)-1] = 0; printf ("Data/ora: %s\n", s); return 0; }
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
grazie ora non da più errori!--però non riesco a vedere l'output in fase di esecuzione, come posso fare?
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Leggi <qui>, in particolare il post #7.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
![]() ... loop: (o qualsiasi flag) goto loop; (XD così stava aperto a eseguire il niente..ma almeno era aperto) } solo che in questo caso non funzionava!...grazie mille!
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
però c'è un problema-...non funziona cmq..cioè non rimane aperto..ed è l'unico programma che fa così!...ma io ho copiato il codice come lo avevi postato te-...
![]() ![]() ![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
mi correggo di nuovo...da prompt funziona regolarmente...non funziona piuttosto se faccio partire direttamente l'eseguibile
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Cioè che cosa hai scritto di preciso nel sorgente??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
ho scritto system("PAUSE") e ho aggiunto window.h e da prompt funziona, se faccio partire l'eseguibile apre e chiude subito e non vedo nulla, cmq ho visto che anche usando il mio metodo della flag con il goto il programma resta aperto ma sempre e solo da prompt..boh!..cmq adesso riesco a vedere la data
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi bisogna vedere dove hai messo la system. Devi metterla alla fine del main, prima del return;
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
grazie ora funziona!...l'avevo messa appena sotto il return prima di chiudere la graffa...ora va...anche se il firewall mi blocca l'esecuzione per comportamento sospetto e devo impostare un eccezione
![]() ![]()
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:30.