Eingabensicherheit /nur bestimmte Eingaben zulassen
-
Hallo
ich habe ein kleiens Programm geschrieben und will für die Usererstellung Fehleingaben abfangen zum Beispiel : - nur Buchstaben oder nur Zahlen eingebbar
bzw beides
- auf bestimmte länge begrenzen
- Fehlermeldung bei Fehleingabe bzw
abschneiden was darüber hinauszurzeit nutze ich für die Eingabe fgets(Char array,Zeichenlänge,stdin)
da bei einlesen mit scanf() er mir Probleme bei der Eingabe von Leerzeichen fabriziert. Und übegebe alle Werte einer Speicherfunktion wo nochmal die reale länge überprüft wird und entsprechend viel Speicher alloziiert wird.void neuernutzer(kontozeiger *kundenzeiger) { char name[20]; char vorname[20]; char adresse[100]; char stadt [30]; char eingabeplz[5]; char eingabekontonr[16]; printf("Name: "); fgets(name, 20, stdin); n_entfernen(name); fflush(stdin); printf("Vorname: "); fgets(vorname, 20, stdin); n_entfernen(vorname); fflush(stdin); printf("Kontonummer:"); fgets(eingabekontonr,16,stdin); n_entfernen(eingabekontonr); fflush(stdin); printf("Adresse:"); fgets(adresse,100,stdin); n_entfernen(adresse); fflush(stdin); printf("PLZ:"); fgets(eingabeplz,5,stdin); n_entfernen(eingabeplz); fflush(stdin); printf("Stadt:"); fgets(stadt,30,stdin); n_entfernen(stadt); fflush(stdin);
Danke für eure Hilfe.
Martin
-
fflush(stdin);
Ist ein nasal deamon.
Mach deine Eingabepuffer doch ein wenig größer, zB bei PLZ, sonst rutscht dir eine zu lange Eingabe in dem Fall zu Stadt hinüber, und die richtige Stadt-Eingabe geht direkt ins Nirvana ein.
nur Buchstaben oder nur Zahlen eingebbar
Da musst du nur nachsehen, ob man den Eingabepuffer in eine Zahl verwandeln kann: man: strtol, oder nachsehen, ob nur Buchstaben drin sind: man: isalpha usw.
EDIT:
Zu fflush(stdin):
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1146014.html
(erster Google-Treffer)
-
Mir ging es eigentlich um eine bessere Einlesefunktion, mit der ich die oben genannten Kriterien realisieren kann.
-
Mir ging es eigentlich um eine bessere Einlesefunktion, mit der ich die oben genannten Kriterien realisieren kann.
Tut mir leid: afaik mußt du dir sowas selbst bauen.