Also folgendes Problem. Program soll aufpassen das der user eine zahl eingibt und wenn der user doch mal einen Buchstaben eingibt soll eine Fehlermeldung erscheinen( oder sonstiges ).
Muss die Reaktion sofort nach dem Eintippen des Buchstabens kommen, oder geht es auch, dass die Eingabe zuerst mal akzeptiert und dann als Ganzes geprüft wird, also so: Benutzer tippt:
Code:
247u983<return>
Meldung erscheint nach Drücken von Return.
Falls das geht, könntest du mit gets oder besser fgets die Eingabe einlesen und dann mit strtol / strtoul / strtod eine Konvertierung versuchen. Bei ungültigen Zeichen schlägt diese fehl.
und wie sieht das aus wenn ich das nicht in der Konsole mache sonder n die Zahl in ein Textfeld steht(Edit-Feld).
P.S. Ich weiß das, TEdit hier in einer in dem Teil des Forums nichts zu suchen hat und auch nicht zu C/C++ gehört aber als ich den Post rein gesetzt habe war es schon zu spät. -- Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
na es muss doch irgendwie ne message geben die aufgerufen wird wenn sich der inhalt deines Textfeldes ändert. wenn das der fall ist holst du dir den inhalt aus dem textfeld guckst nach ob valide zeichen eingebenen wurden (entweder mit den von ao vorgeschlagenen string mehtoden oder mit dem was ich dir gepostet hab). Wenns nicht valide ist kannst du das letzte zeichen einfach löschen oder du setzt gleich das ganze textfeld auf leer -- ...fleißig wie zwei Weißbrote
Das ist ein Wert den ich da eingebe um etwas zu berechnen also müsste er sobald ich die Rechnung starte,und in diesem Feld steht ein Buchstabe, das Feld löschen(den Inhalt). gibt es da nichts so vielleicht das ich schreiben kann:
Das Edit-Feld dient nur zur Eingabe von Werten. zurückliefern tut es mir glaub ich nichts. Ich denke mal. und das mit dem was du mir zum schluss geschrieben hast gibt es nicht. es bgibt IsNumeric. aber da bringt er mir ne Fehlermeldung das es eine undefinierte Variable ist. -- Wenn man nichts tut, glaubt man, daß man für alles die Verantwortung trägt.
das isNumber ist die funktion die ich in Post001 geschrieben habe
das edit-feld soll auch nichts zurückliefern sondern auf ein ereignis reagieren. das ereignis das du brauchst ist wenn der inhalt des Feldes sich ändert. Es gibt doch auch bestimmt ein ereignis dafür wenn du auf nen button klickst oder nicht? -- ...fleißig wie zwei Weißbrote