Fehler bein Nicht-Eingabe umgehen

bernard

Grünschnabel
Fehler bei Nicht-Eingabe umgehen

Ich hab ein Programm geschrieben mit dem ich alle möglichen DEC Zahlenwerte in die entsprechenden HEX, BIN Werte usw. umrechnen kann. Jetzt will ich verhindern, dass das Programm abstürzt, wenn ich in das EditFenster nichts eingebe bzw. er soll dann den String im Editfenster gleich 0 setzen.

Ich weiß jedoch nicht was die Editbox für einen Inhalt enthält wenn ich nichts eingebe, wüsste ich das wäre das Problem so gut wie gelöst..
 
Zuletzt bearbeitet:
Äh, wenn du nichts eingibst, dann ist nichts drin. Wenn du den String mit GetWindowText ausliest, ist er einfach nur leer (Bei einem char-Array ist das erste Zeichen 0).
 
Ah ok, wenn ich nichts eingebe ist der String leer, DAS heisst dass er nur durch die binäre null terminiert ist

Z.B

Edit1->Text="\0"; oder wie?

Edit:\\

Also bei mir ist es im moment folgendermaßen, ich will eine Hex Zahl in eine DezZahl umwandeln aus dem editfenster lese ich nun die eingabe aus und wandel die hexzahl wie gehabt in eine dezzahl um, dabei ist der string auf zwei zeichen begrenzt da ich nur den hexadezimalen zahlenbereich von 0 bis FF abdecken will. Wenn ich aber nur ein Zeichen im editfenster eingebe spuckt er mir natürlich den econvert error raus, weil er versucht mit dem nicht vorhandenen wert zur rechnen..
 
Zuletzt bearbeitet:
Dann liegt der eigentliche Fehler in der Umwandelroutine. Du kannst am Anfang der Routine einen String, der weniger als zwei Stellen hat, von vorne mit Nullen ('0') auffüllen.
 
FireFlow hat gesagt.:
So ist es bei char-Arrays im C-Style aber nicht bei den String-Klassen.

Verweden die Methode length()

nur um in diesem Fall mal ein bissl klugzuscheissen (ich hoffe ich mach jetzt nichts falsch :D ):
um zu testen um ein string leer ist bietet sich besser die methode empty() an
(gleiches ergebnis wie .size() == 0 nur schneller ;) )
 
Zurück