Benutzer mit den meisten Antworten
Switch Case

Frage
-
Hallo zämmä
Ich brauche eure Hilfe.
Wenn ich eine Switch Case Anweisung habe und z.b. im Case 1 eine Eingabe machen will:
s=Console::ReadLine();
z=Convert::ToInt16(s);
bricht mir das Programm ab "*.exe funktioniert nicht mehr"! Hat es einen zusammenhang, dass der Wert nicht von Anfang an im Code vermerkt ist? Ich habe s und z am Anfang aufgeführt :-(
String ^s;
int z;
Muss ich mit Zeiger arbeiten?? *s und &z?
Danke für eure Hilfe.
Gruss Noppi
Antworten
-
Vermutlich hast Du keine Zahl eingegeben, sondern einen String... dann geht das "ToInt16" schief und Dein Programm stützt ab. Verwende lieber "
if (Int16::TryParse(s, %z) == true) { // Erfolgreich konvertiert... Console::WriteLine("Die Zahl ist {0}", z); } else { Console::WriteLine("Der übergebene String ist keine Zahl!"); }
Siehe:
http://msdn.microsoft.com/de-de/library/system.int16.tryparse.aspx
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Robert BreitenhoferModerator Sonntag, 3. Januar 2010 19:08
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 5. Januar 2010 19:30
Alle Antworten
-
Vermutlich hast Du keine Zahl eingegeben, sondern einen String... dann geht das "ToInt16" schief und Dein Programm stützt ab. Verwende lieber "
if (Int16::TryParse(s, %z) == true) { // Erfolgreich konvertiert... Console::WriteLine("Die Zahl ist {0}", z); } else { Console::WriteLine("Der übergebene String ist keine Zahl!"); }
Siehe:
http://msdn.microsoft.com/de-de/library/system.int16.tryparse.aspx
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Robert BreitenhoferModerator Sonntag, 3. Januar 2010 19:08
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 5. Januar 2010 19:30