[C] Eingabe auf Ganzzahl überprüfen

  • Hi,


    Ich hab folgendes Problem - Ich möchte gerne 3 integer Zahlen einlesen lassen. Bei der Eingabe soll dann überprüft werden, ob die Zahl eine Ganszahl ist, also keine Buchstaben eingegeben worden sind oder z.B. 3-5 und ob die Zahl zwischen 0 und 60 ist (0 miteingeschlossen).


    Eingaben sollen folgende Zahlen sein:


    Stunden (größer gleich 0)
    Minuten (größer gleich 0 und kleiner gleich 59)
    Sekunden (größer gleich 0 und kleiner gleich 59)


    Hier mal der Quellcode bei der Eingabe



    ich weiß, dass i=1; überflüssig ist... aber trotzdem einfach nur zur "Sicherheit"
    das fflush(stdin); ist einfach nur eine initialisierung, mehr nicht.


    Hoffe jemand kann mir bei dem Problem helfen.

  • Wenn du es einfach haben willst, dann kannst du natürlich alles über Abfragen machen. Zum einen kannst du über die ASCII Werte Buchstaben und Sonderzeichen aussortieren. Als Nächstes kannst den Wert der übriggebliebenen Zahlen bestimmen (>=0 <60).


    Falls du dich mehr mit solchen Rahmenbedingungen auseinandersetzen willst, würde ich dir reguläre Ausdrücke ans Herz legen. Damit werden Eingaben klassischer Weise gefiltert/ auf Richtigkeit überprüft.


    MfG Mario64

  • isdigit


    Und wenn du nicht weißt, wie du überprüfst, ob eine Zahl in einem gewissen Bereich liegt, kann dir niemand mehr helfen.


    MfG

  • So, habs jetzt geschafft, jedoch nicht mit isDigit sondern mit atol



    Das Problem ist jedoch jetzt nur noch, dass z.B. die Eingabe "55aa6x3" erlaubt wird und als Ausgabe dann 55 ist.

  • Ich spekuliere mal wild drauf los und gebe den waghalsigen Tipp ab, dass du die falsche Funktion verwendest.


    MfG