[Konsole] Formatierte Eingabe
-
Frage
Wie kann ich eine formatierte Eingabe von der Konsole durchführen, wie dies zum Beispiel in C mitsscanf
geht?Antwort
Eine solche direkte Möglichkeit gibt es in .Net nicht.Console
bietet nur die statischen MethodenRead
,ReadLine
undReadKey
an, um Daten einzulesen. Diese sind aber auf Zeicheneingaben, bzw. Texteingaben, beschränkt. Um daraus nun z.B. Zahlen zu gewinnen oder eine gewisse Form aufzubrechen, gibt es unterschiedliche Hilfsmittel. Jeder Wertetyp in C# hat eine statische MethodeParse
undTryParse
, womit sich Text in den entsprechenden Wertetyp umwandeln lässt. Um eine Form aufzubrechen, kann man entweder die Funktionen derString
Klasse oder Regulare Expressions über die KlasseSystem.Text.RegularExpressions.Regex
verwenden.Beispiel
using System; class Program { public static void Main() { var expression = Console.ReadLine(); var terms = expression.Split('+'); double total = 0; foreach(var term in terms) { total += Double.Parse(term); } Console.WriteLine("{0} = {1}", expression, total); } }