Eingabe von Buchstaben etc. verweigern

Dieses Thema Eingabe von Buchstaben etc. verweigern im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von newbee21014, 30. Nov. 2005.

Thema: Eingabe von Buchstaben etc. verweigern Hi zusammen! An unserer Berufsschule gibts eine spezielle Formel zum ermitteln der Note. Dazu habe ich in C ein...

  1. Hi zusammen!
    An unserer Berufsschule gibts eine spezielle Formel zum ermitteln der Note. Dazu habe ich in C ein kleines Programm geschrieben, das auch funktioniert.
    Zum Problem: Wenn jemand Buchstaben oder Sonderzeichen eingibt, dreht das Programm durch und wiederholt die while-Schleife ohne Ende.
    Frage: Gibt es einen Befehl oder eine Möglichkeit, die Eingabe auf Zahlen so zu beschränken, dass wenn Buchstaben oder Sonderzeichen eingegeben werden eine Fehlermeldung ausgegeben oder das Programm beendet?
    Merci in Voraus
    Gruss, newbee21014
     
  2. Poste doch mal den betreffenden Codeteil.
     
  3. Sorry, wirkt ein bissl chaotisch:

    #include stdafx.h

    void main()
    {
    float pkte = 0; //DEKLARATION DER EIGENEN PUNKTZAHL
    float gpz =0; //DEKLARATION DER GESAMTPUNKTZAHL
    float note = 0; //DEKLARATION DER NOTE

    printf(Willkommen! Mit diesem Tool k\x94nnen Sie \n); //BEGRÜSSUNG_1
    printf(anhand ihrer sowie der Gesamtpunktzahl ihre Note ermitteln.\n); //BEGRÜSSUNG_2
    printf(                  (C) David Singh, INF1b    \n); //COPYRIGHT
    printf(-----------------------------------------------------------\n\n); //TRENNLINIE

    while(1) //BEGINN EINER WHILE-SCHLEIFE
    {
    printf(Geben Sie ihre Punktezahl ein: ); //EINGABEAUFFORDERUNG FÜR EIGENE PUNKTE
    scanf(%f,&pkte); //EINLESEN SELBIGER
    if(pkte==0) //WENN PUNKTE = 0 SIND, ...
    break; //..BEENDE DAS PROGRAMM
    printf(Geben Sie nun die maximal erreichbare Punktzahl an: ); //EINGABEAUFFORDERUNG GESAMTPUNKTZAHL
    scanf(%f,&gpz); //EINLESEN SELBIGER
    if(pkte>gpz) //WENN EIGENEPUNKTZAHL GRÖSSER GESAMTPUNKTZAHL...
    {
    printf(Mehr als die Gesamtpunktzahl ist nicht m\x94glich.\n); //...GIB AUS, DASS DAS NICHT GEHT...
    break; //...UND BEENDE DAS PROGRAMM
    }
    printf(Sie haben eine %.2f.\n\n\n\n, ((pkte/gpz)*5)+1); //ANSONSTEN GEBE DIE NOTE AUS
    }
    printf(Programm beendet!\n); //WENN EINE DER BEDINGUNGEN ZUTRIFFT UND PROGRAMM BEENDET WURDE, GIB DAS AUS
    system(pause); //PROGRAMM ANHALTEN
    }
     
  4. Hoi!

    ich kenn mich in C nich so aus..aber Du kannst doch bestimmt die Eingabe in ASCII-Codes umwandeln und da dann den Gueltigkeits-Bereich festlegen.
    Zahlen liegen zwischen 30 und 39 HEX, also 48 bis 57 Dec .....
    Dann kannste ja mit ner IF rausfiltern was nich reingehoert...
    Oder Du laesst nur INT- bzw bei Gleitkomma-Zahlen (falls die Lehrer auch halbe Punkte vergeben) FLOAT-Werte zu... soviel zur Theorie, praktisch kann ich Dir aber nich weiterhelfen :-[

    Viel Erfolg!
     
Die Seite wird geladen...

Eingabe von Buchstaben etc. verweigern - Ähnliche Themen

Forum Datum
Eingabegebietsschema nicht änderbar Windows 7 Forum 4. Nov. 2016
in der Eingabeaufforderung als Administrator? Windows 10 Forum 17. Mai 2016
Kennworteingabe nicht möglich Windows 10 Forum 11. Sep. 2015
Stift- und Fingereingabe Windows 10 Forum 7. Aug. 2015
Windows 7 auf USB-Stick, welche Eingabe bei boot: ?!? Windows 7 Forum 30. Dez. 2014