Systemzeit



  • hEY gUYS!
    habe ein kleineres Problem. Ich will eine Funktion, welche mir die Systemzeit in ausgabefähigen Format zurückgibt. Eigentlich kein Problem:

    string supplyTime();
    //--------------------------------------------------//
    int main(){
    	string datum="";
    	datum=supplyTime();
    	cout<<datum;
    
    	return 0;
    }
    //--------------------------------------------------//
    string supplyTime(){
    
    	time_t currentTime = time(NULL); 
    	tm *now = localtime(&currentTime);
    
    	string nowRet="";
    	strstream strstr;	
    
        strstr.fill('0');
    	strstr.width(2);	strstr<<now->tm_mday<<".";
    	strstr.width(2);	strstr<<now->tm_mon+1<<".";
    	strstr.width(4);	strstr<<now->tm_year+1900<<"/";
    	strstr.width(2);	strstr<<now->tm_hour<<":";
    	strstr.width(2);	strstr<<now->tm_min<<":";
    	strstr.width(2);	strstr<<now->tm_sec<<endl;
    
    	nowRet=strstr.str();
    
    	return nowRet;
    }
    

    aber bei der Ausgabe kommt neach der Syszeit noch ein ewiger Rattenschwanz von Datenschrott mit raus. Ich habe mich schon fast totgesucht, aber finde auch keine bessere/elegantere Möglichkeit
    oder? 😞
    suche auch noch nach einer Möglichkeit andie millisekunden ranzukommen 😞 😞



  • Du solltest kein endl in den string schreiben.

    Abgesehen davon geht das ganze einfacher mit strftime.



  • Du benutzt strstream falsch => RTFM

    Oder besser stringstream (Header <sstream>) benutzen, das ist einfacher und weniger fehleranfällig.

    DrGreenthumb: Was ist an endl so schlimm? flush ist doch bestimmt eine No-Op.



  • strftime schaue ich mir mal an,
    @bashar: 👍 thanx' mit stringstream (Header <sstream>) funktioniert es wunderbar 😃
    Wie sieht es mit milli-Sekunden aus? Danke im voraus!



  • Bashar schrieb:

    DrGreenthumb: Was ist an endl so schlimm? flush ist doch bestimmt eine No-Op.

    war nur so eine Vermutung, weil er schrieb dass am Ende wirre Zeichen sind. Hätte gedacht, dass ein stringstream sowas falsch interpretieren könnte. Viel Sinn machts ja auch nicht.



  • Tatsächlich ist es so, dass man strstreams per Hand nullterminieren (str << ends) muss ... aber die Teile sollte man eh zu Gunsten von stringstream meiden.


Anmelden zum Antworten