Zeit auslesen
-
Hallo alle zusammen,
Ich habe viel rumgeschaut und trotz aller vorlagen habe ich mir selbst etwas kleines zusammen gebastelt, weil ich von der ganzen copy paste sache nichts halte und es ja auch verstehen will.
Also meine Aufgabe besteht darin einen Parkscheinautomaten zu programmieren.
Dazu soll ich die Systemzeit auslesen.
Nun habe ich folgendes geschrieben, aber bei jedem ausführen des programms steht da ne andere uhrzeit?! und nichtmal annähernd die richtige..#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { struct tm *test; time_t Zeitabgriff; char buffer[80]; test=localtime(&Zeitabgriff); strftime(buffer,80,"%X",test); printf("%s",buffer); return 0; }
könnt ihr mir vllt. helfen?
Gruß Neuling
-
Du musst
Zeitabgriff
erstmal mit einem sinnvollen Wert füllen.
Das geht mit der Funktiontime
Zeitabgriff = time (NULL); //oder auch time(&Zeitabgriff );
-
ahhh danke sehr!
vielen dank für die schnelle antwort!
-
Könntest du oder wer anders mir vllt. sagen wie ich den int wert der zeit abgreifen kann?
weil ich schreibe den ja in ein char array
-
mittime
Oder meinst du etwas anderes.
Schau mal hier: http://www.cplusplus.com/reference/ctime/time/Und sieh dir auch die Beispiele bei den anderen Funktionen aus time.h an
-
Ja die sachen habe ich mir auch schon mehrmals durchgelesen aber ich werde nich 100%ig schlau daraus.
struct tm *test; time_t Zeitabgriff; char buffer[80]; time(&Zeitabgriff); test=localtime(&Zeitabgriff);
hiermit bekommt Zeitabgriff ja den speicherplatz der aktuellen zeit (time) zugewiesen.
die wandle ich mit localtime in eine vernünftige "zeitform" um.
jetzt verstehe ich nicht wie ich aus dem Struct tm datentyp für die stunde/minute/sekunde jeweils einen int datentyp bekomme, bzw ein int array
-
Die aktuelle Zeit wird in Zeitabgriff abgelegt, bzw. wird Zeitabgriff zugewiesen.
Wenn du die Sachen durchgelsen hast, hast du ja die Beschreibung der
struct tm
gelesen.Jetzt musst du noch bedenken das dein
test
ein Zeiger auf eine struct ist. Daher Zugriff mit ->printf("Sekunden: %02d\n", test->tm_sec); printf("AKtuelle Uhrzeit: %2d:%02d:%02d\n", test->tm_hour, test->tm_min, test->tm_sec); printf("Anno %4d\n", test->tm_year+1900);
-
ahh es war immernoch ein fehlervorhanden, dass ich mit %d keine struct tm auslesen kann...
ich habe eigentlich nichts verändert dann war auf einmal der fehler weg.
danke