char nach int konvertieren



  • Ich hab versucht eine Stopuhr zu schreiben.Dazu habe ich die Systemzeit in ein char array ( ein String würde natürlich auch gehen ) schreiben lassen.

    char zeit1[9];
    	_strtime (zeit1);
    
    	cout << zeit1 << endl;
    	cout << zeit1[0] << endl;
    	cout << zeit1[1] << endl;
    	int a = ((zeit1[0])+(zeit1[1]));
    	cout << a;
    

    Das 1. Problem: ich denke es ist nicht richtig, ein char Array einfach so in einen Integer umzuwandeln, und wundere mich, warum der Compiler keine Fehlermeldung ausgibt.
    2. Problem: Die Werte, die fuer a ausgegeben werden, sind wieder Erwarten bei Subtraktion und Division richtig, bei Addition und Multiplikation dagegen totaler Nonsens, immer eine 3-stellige Zahl, die aber nie stimmt.
    Von Delphi her kenn ich noch solche Befehle, wie z.B. Strings in Integer umzuwandeln u.Ä., gibt es sowas für C++ auch? Denn das wäre ( so nehme ich an ) die "sauberste" Lösung hier oder? (_strtime akzeptiert leider nur char, sonst wär das ganze ja einfacher...)



  • *grübel* was macht denn _strtime() genau? Versuch' doch mal die Funktionen der <ctime> zu verwenden.

    (zur Umwandlung verweise ich mal auf die FAQ: Zahl nach String und zurück)



  • danke, werd mir das mal anschauen, ( _strtime schreibt die systemzeit in ein char array, war das erste, was ich bei google zu dem thema gefunden habe...in meinem fall hab ich dann ein array, dessen erste zeichen lauten: hh🇲🇲ss )



  • Ich glaube, für deine Anwendung ist man: localtime die bessere Wahl - das speichert die aktuelle Systemzeit geordnet in einer Struktur.



  • also ich hätt nicht gedacht dass ich in der faq fündig werde, weil ich die letzten tage schon so oft darin rumgewühlt hab, aber man lernt halt nie aus.was dort zur umwandlung stand, hat mein problem wunderbar gelöst, vielen dank nochmal 🙂 ( _strtime gibt es mir jetzt als string aus, das ist ausreichend für meine zwecke. ich hab dann einfach die einzelnen stringteile genommen und mit diesen rumgerechnet )



  • BeNNeR schrieb:

    also ich hätt nicht gedacht dass ich in der faq fündig werde, weil ich die letzten tage schon so oft darin rumgewühlt hab, aber man lernt halt nie aus.was dort zur umwandlung stand, hat mein problem wunderbar gelöst, vielen dank nochmal 🙂 ( _strtime gibt es mir jetzt als string aus, das ist ausreichend für meine zwecke. ich hab dann einfach die einzelnen stringteile genommen und mit diesen rumgerechnet )

    _strtime kenne ich nicht und es sieht auch nicht so aus, als ob ein normaler user das benutzen sollte (wegen dem unterstrich). afaik ist es kein standard. nimm lieber strftime() und übergib localtime().


Anmelden zum Antworten