Wie die Eingabe von Benutzern in der Konsole nehmen oder mit Leichtigkeit in c # Datei?

StackOverflow https://stackoverflow.com/questions/816726

  •  03-07-2019
  •  | 
  •  

Frage

Ich bin ein C ++ Benutzer und jetzt zu verwenden, c # zu versuchen.

In c ++ unter Eingabe vom Benutzer hat Spaß gemacht (nur >>) und unterstützt alle Arten. So war für die Dateien. Aber in c # ist es zu komplex, da ich nur Strings nehmen. Dann muss ich es für eine spätere Verwendung manipulieren.

Und wenn ich mehrere Eingänge in derselben Zeile durch Leerzeichen getrennt nehmen will, wird es komplizierter, als ich für String-Splitting gehen. Dann Umwandlung ...

Vielleicht ist es für die Fehlerbehandlung und sicheren Code ist. Aber ich bin enttäuscht mit C # sowieso.

Sie sind alle Experten Jungs hier. Gibt es eine einfache Art und Weise?

War es hilfreich?

Lösung

Soweit ich weiß, haben Sie es auf die harte Art und Weise zu tun. (Auf der hellen Seite, obwohl der harte Weg ist einfacher, als es in C ++ würde;))

Console.OpenStandardInput () führt Sie den Eingabestrom geben, so dass es die gleiche wie Dateien behandelt werden, aber Sie werden die Zeichenfolge selbst Aufspalten zu tun haben, wenn Sie das brauchen. Natürlich hat C # eine schöne Regex-Bibliothek, die hier helfen kann.

T.TryParse (wobei T int, float, je nachdem, was Art Sie lesen wollen) sollten lassen Sie die Zeichenfolge in diesen Typen konvertieren.

Andere Tipps

Schließlich wäre es nicht viel, um es zu wickeln - Sie würden nur die aktuelle Zeile puffern müssen und Eingaben in dem gewünschten Format abgelesen. Aber IMO, ein wenig Split / TryParse etc selten weh tut.

Ich bin nicht 100% sicher, dass die erwarteten Formate, die >> akzeptiert, aber ich bezweifle es schwer sein würde, etwas ähnliches zu tun. Ich bin freiwillig nicht, es zu schreiben, obwohl ;-p

Wie bereits beantwortet, ist C # dies nicht unterstützen. Keine Überlastung von << oder >> für Ströme überhaupt und während es eine TextWriter.WriteLine (““, ...) gibt es keine entsprechenden TextReader.ReadLine () mit variabler Parameterliste.

Ich werde eine Vermutung nehmen in Warum : das Leerzeichen-spepareted Datenformat dat cin versteht einfach nicht viel mehr verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top