time-funktion?



  • Hi, hab in meinem Anfängerbuch folgendes gelesen:
    ➡ "Die Funktion time() liefert die aktuelle Zeit in Form [...blabla..]. Die Funktion ctime() konvertiert die Anzahl der Sekunden in einen String mit Datum und Uhrzeit und gibt diesen String zurück."
    Als Beispiel is ein Programm, das verkürzt ungefähr so aussieht:

    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <ctime>
    using namespace std;
    
    int main()
    {
    	long sek;
    	time( &sek);
    
    	string zeit = ctime( &sek);
    
    	cout << "Datum und Uhrzeit: " << zeit << endl;
    
    	return 0;
    }
    

    Bei dem Programm kommt bei mir aber immer ein Fehler, weil ctime anscheinend doch nicht einfach das konvertiert. 😞
    Es wird nach einem reinterpret_cast usw. gefragt.

    Was ist falsch an dem Code bzw. dem Buch (??) warum geht das nicht, bzw. wie kann ich diesen ctime()-String richtig ausgeben? 😕

    mfg g0Ud



  • Also nach dem ich die Zeile

    #include "stdafx.h"
    

    rausgeschmissen habe läuft dein oben genanntes Beispiel bei mir ohne Probleme.



  • g0Ud schrieb:

    Bei dem Programm kommt bei mir aber immer ein Fehler, weil ctime anscheinend doch nicht einfach das konvertiert. 😞
    Es wird nach einem reinterpret_cast usw. gefragt.

    Was ist eigentlich so furchtbar schwierig daran, die komplette Fehlermeldung hier reinzuschreiben und vielleicht sogar noch zu sagen, in welcher Zeile sie aufgetreten ist?



  • Dein Beispiel sollte eigen tlich so funktionieren.
    Verwende statt long time_t auch wenn time_t
    typedef long time_t
    ist.

    time_t rawtime;
    
      time ( &rawtime );
    string zeit(ctime( &rawtime));
    


  • Jo danke, Unix-Tom!

    Im Buch steht das anscheinend falsch drin, man darfs nämlich nicht so:
    long sek;

    sondern so definieren:
    time_t sek;

    dann funktioniert alles wunderbar!

    Danke nochmal. 👍


Anmelden zum Antworten