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 Funktion time

    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



  • 😕 😕
    mit time

    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 🙂


Anmelden zum Antworten