Veröffentlicht 13. August 201213 j Guten Mittag ! Aufgabe: Nach Eingabe von Start- und Endzeit, den Ablauf dieser Zeit ausgeben. Küchenuhr im Prinzip. 1. Frage: Wie zerschneide ich die Eingabe des Users (Format ss:mm:seksek) um Stunden und Minuten in Sekunden umzuwandeln um lediglich mit Sekunden zu rechnen. Per "strlen" iwie oder ? 2. Frage: Befehl um die Zeit (im Sekunden-, Stunden- bzw. Minutenformat, untereinander) ablaufen zu lassen, im Terminal ? Danke ! Ausgabe: Ihre eingegebene Zeit betrug insgesamt ss:mm:seksek und dauert noch ss:mm:seksek, mmmm:seksek, seksekseksek.
13. August 201213 j okay...ich versteh die aufgabe nicht ganz. was soll das programm machen? nen timer darstellen x sekundne bis? zeiteingabe kannst du am einfachsten als integer abfragen (format hhmmss) und dann via modulo aufbrechen und wie multiplikation und summation zusammen rechnen.
13. August 201213 j Autor Ja, Timer. Zeitschaltuhr, Küchenuhr eben. Start- und Endzeit eingeben und ablaufen lassen. hhmmss geht nicht da die eingabe benutzerfreundlich, also hh:mm:ss lauten soll bzw nur mm:ss. wie schneidet man die ":" raus um mit mm und ss zu rechnen ?
13. August 201213 j kay, benutzerfreundlich ist ansichtssache...^^ alternative: chararry ( eingabe[8] ) die eingabe reinschreiben. wenn es nur maximal 99 Stunden sind reichen die 8 zeichen. dann kannst du ja, da du ja weisst welche stelle s, m und h ist die entsprechende stelle auslesen, zusammen rechnen, umrechnen, zusammenrechnen lassen auf sekunden. nen ablauftimer hab ich aber selber auch noch net gebastelt...
13. August 201213 j Am besten liest du die Benutzereingabe in einen std::string ein und dann musst du dir einen Parser dafür basteln der prüft ob die Eingabe überhaupt korrekt ist und die für dich wichtigen Informationen da rausholt. find und substr helfen dir dabei zum Beispiel, genaueres dazu findest du in der Doku zu std:string. Um dann die Zeit runterlaufen zu lassen wäre für die Übung das Einfachste einfach eine Schleife laufen zu lassen welche bei jedem Schritt eine Sekunde mit sleep pausiert. Ansonsten müsstest du dir Gedanken um einen Timer (z.B. boost::timer) machen.
13. August 201213 j Für das Parsen (und festen Format) kann ich auch die Standard Input Streams (z.B. std::istringstream) empfehlen. Exemplarisch: std::string input; std::istringstream iss( input ); int num = 0; char delim; iss >> std::ws >> num; iss >> delim; [/PHP] Zwischendurch vielleicht noch den Stream und die Daten überprüfen ...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.