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

    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. 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

    Hi,

    Ich würde da eher do-case nehemen.
    Kannst ja auch alles ausser die 9 Buchsteban auschalten, ist aber um einiges komplizierter.
     
  4. 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

    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. 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