Eingabe von Bustaben verhindern (C/C++)

Dieses Thema im Forum "Programmieren" wurde erstellt von FallenOne, 11. Januar 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. FallenOne

    FallenOne Byte

    Registriert seit:
    20. Januar 2004
    Beiträge:
    57
    Hallo,
    kann mir jemand sagen wie man in C/C++ die Eingabe von Bustaben bzw. anderen Zeichen als Ziffern 0-9 verhindern kann?

    MfG
    Fallen
     
  2. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    ich denke, dass du es mit eier do-while-schleife machen könntest das wäre mir die bekannteste und beste lösung. ich habe versucht es zu erklären ich glaube man würde es aber nicht verstehen, also guck lieber mal bei google unter do-while-schleifen von c/c++ nach.

    mfg
    tobias
     
  3. .Erzengel*

    .Erzengel* Byte

    Registriert seit:
    25. November 2004
    Beiträge:
    123
    Hi,

    Ich würde da eher do-case nehemen.
    Kannst ja auch alles ausser die 9 Buchsteban auschalten, ist aber um einiges komplizierter.
     
  4. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    wenn ich es richtig verstanden habe möchtest du, das nur bestimmte zeichen reinkommen und bei einer fehleingabe noch einmal eingegeben werden muss. oder nicht ?

    das auslesen von mehr als zwei zeichen sollte auf jeden fall über eine switch-case abfrage laufen, da es mit if und els zu aufwändig wäre.

    bitte bedenke bei zeichen noch mit toupper(); bzw. tolower(); die eingabe auf einen level zu bringen, da du ansonsten evtl. falsche ausgeben bzw. gar nichts ausgegeben bekommen solltest.

    gruß
    tobias
     
  5. Michi0815

    Michi0815 Guest

    Registriert seit:
    7. Januar 2004
    Beiträge:
    3.429
    könnte auch so gehen (sorry, wenn fehler drinnen sein sollten; habe grad keinen compiler zur hand)

    Code:
    #include <conio.h>
    #include <string>
    #define LineFeed #10
    
    boolean TestKey(char c) {
      char erlaubt[] = "0123456789"; // die erlaubten zeichen
      int max_erlaubt = 10; // anzahl der erlaubetn zeichen
      boolean ergebnis = false;
      for (int lv=1; lv<=max_erlaubt; lv++) {
        ergebnis = ((erlaubt[lv] == c)||ergebnis) ;
      }
      return ergebnis
    }
    main() {
      char key;
      string Eingabe = "";
    
      while((key = getch ()) != LineFeed) {
        if (TestKey(key)) {
          Eingabe+=key; //keine ahnung ob das geht???
        }
      }
    
       // programm tut etwas mit "Eingabe"
    }
    
     
  6. azonic.1988

    azonic.1988 Byte

    Registriert seit:
    27. Oktober 2004
    Beiträge:
    55
    sry ich blicke nicht wirklich durch deinen code ich hätte, oder mache es so:

    #include <stdio.h>
    #include <conio.h>

    void main()
    {char taste;
    do
    {
    taste = getch();
    // hier kommt dann dein code rein !!!
    }
    while(taste != '1' && taste != '2' && taste != '3') // etc.
    }
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen