Ich schreibe geradeein Programm für die Console mit C# wie kann ich meine Eingaben dort überprüfen das dies nur Zahlen sind und nix anderes??
Schonmal THX
Siehe Parse()-Methode, z.B. double.Parse() oder int.Parse(). Ist die Eingabe keine entsprechende Zahl, wird eine Exception geworfen.
using System;
using System.IO;
namespace ConsoleApplication43
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Text eingeben und Ganzzahl-Prüfung mit <RETURN> starten.");
string eingabe = Console.ReadLine();
try
{
int eingabeAlsGanzzahl = int.Parse(eingabe);
// keine Exception, Eingabe ist eine Zahl
Console.WriteLine("Eingabe war eine Ganzzahl");
}
catch (FormatException)
{
Console.WriteLine("Eingabe war keine gültige Ganzzahl.");
}
Console.WriteLine("Taste drücken um Programm zu beenden...");
Console.ReadLine();
}
}
}
using System;
namespace TestEingabe
{
class MainAPP
{
static void Main()
{
string eingabe;
int i;
bool erg = false;
//Diese Methode hat den Vorteil, daß ich nicht mit Exceptions arbeiten muß!
while(!erg)
{
//Eingabe einlesen
Console.Write("Bitte eine Zahl eingeben: ");
eingabe = Console.ReadLine();
//alle Zeichen einzeln überprüfen
for(i=0; i<eingabe.Length; i++)
{
//Methode IsNumber() gibt bei einem als Zahl formatierbarem Zeichen ein true zurück!
erg = char.IsNumber(eingabe, i);
if(erg == false)
{
Console.WriteLine("Eingabe war keine Zahl!");
break;
}
}
if(erg == true)
int zahl = int.Parse(eingabe);
}
}
}
}
"Do things as simple as possible, but not any simpler!" A.E.
Hallo kemanisebuh,
keine gute Idee. Gibt mal eine hochgestellte Zwei ein. Peng, schon ist die Exception da, die du verhindern willst. Und da du mit der Exception nicht rechnest, stürtzt gleich das ganze Programm ab.
Auf der anderen Seite wird -1 nicht als Zahl erkannt.
Also nie versuchen eine Prüfung nachzuprogrammieren, die in einer vorgegebenen Methode schon realisiert ist, weil man nie sicher sein kann, dass man die Prüfung für alle Fälle genau so hart bzw. genauso weich hinbekommt, wie das Original.
Wenn man Exceptions vermeiden will, kann man unter 2.0 int.TryParse verwenden.
herbivore