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(¤tTime); 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.