title image


Smiley Re: Buchstaben bei der Eingabe verbieten
Mit welchem Compiler arbeitest Du? Wenn es ein Compiler für Windows ist(z.B. Visuell C++ oder Borland Builder), da werden die Eingaben in Textfeldern getätigt und Windows selbst stellt Funktionen zur Verfügung mit denen es möglich ist, Texte (AnsiStrings) in Zahlen (double, float) zu konvertieren. Gelingt dies nicht, wird eine Exeption ausgeworfen und es öffnet sich damit ein Fenster mit der Meldung wie '123a' ist keine Zahl.Anders sieht es in Standard-C++ aus. Hier wird man mit cin oder mit scanf arbeiten müssen um Zahlen einzulesen. Beide Funktionen arbeiten dann unzuverlässig. Daher wird es im Prinzip notwendig sein, statt einer Zahl einen String einzulesen. (In der Standartbibliothek kann man dazu die Klasse string benutzen, in C lediglich ein Feld aus char). Diesen String muss man dann in Kleinarbeit durch Analyse in eine Zahl selbst umwandeln. Der Fachinformatiker nennt das parsen.Das Ganze ist natürlich zum "Haare raufen" vor allen Dingen dann, wenn man auch Fließkommazahlen so einlesen will, deren Syntax recht komplex ist. Schreibweisen mit Vorzeichen (auch +) und die Exponetielle Schreibweise (z.B. +3.456E-24) sind ja zulässig.Eine fertige zuverlässige Funktion dazu gibt es meines Wissens nicht. Die müßte z.B. auch prüfen, ob überhaupt etwas eingegebn wurde oder nur die Taste [Enter] betägtigt wurde. Auch Zahlenbereichsüberschreitungen müssten zuverlässig erkannt und verhindert werden. Schade drum, aber vielleicht kennt hier einer eine solche Funktion.Ich habs mal versucht und war fast fertig als ich feststellte, dass ich bei der Eingabe die Back-Space-taste vergessen hatte. Mann, das war frustierend. Leider konnte ich den Algorithmus nicht abändern, ich hätte es komplett neu aufbauen müssen und das hab ich dann sein gelassen.Tanderadei



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: