C#でコンソールまたはファイルでユーザーからの入力を簡単に取得するにはどうすればよいですか?
質問
私は C++ ユーザーで、現在 C# を使用しようとしています。
C++ では、ユーザーからの入力を受け取るのは楽しく (>> だけ)、すべての型をサポートしていました。ファイルも同様でした。ただし、C# では文字列しか取得できないため、複雑すぎます。次に、後で使用するためにそれを操作する必要があります。
また、複数の入力を同じ行内で空白で区切って取得したい場合は、文字列を分割する必要があるため、より複雑になります。それから変換...
エラー処理と安全なコードのためかもしれません。しかし、私はとにかく C# に失望しています。
ここにいる皆さんは専門家です。何か簡単な方法はありますか?
解決
私の知る限り、それは大変な方法で行わなければなりません。(ただし、明るい面としては、難しい方法は C++ よりも簡単です ;))
Console.OpenStandardInput() は入力ストリームを提供するため、ファイルと同じように扱うことができますが、必要に応じて文字列の分割を自分で行う必要があります。もちろん、C# には、ここで役立つ優れた Regex ライブラリがあります。
T.TryParse (T は int、float、読みたい型のいずれか) を使用すると、文字列をそれらの型に変換できます。
他のヒント
最終的には、ラップするのにそれほど時間はかかりません。現在の行をバッファリングし、希望する形式で入力を読み取るだけです。しかし、IMO、小さな分割/ TryParseなどはめったに痛いことはありません。
>>
が受け入れると予想される形式について100%確信はありませんが、同様のことを行うのは難しいと思います。しかし、私はそれを書くことを志願していません;-p
既に回答したように、C#はこれをサポートしていません。 <!> lt; <!> lt;のオーバーロードなしまたは<!> gt; <!> gt;ストリームの場合、およびTextWriter.WriteLine(<!> quot; <!> quot;、...)が存在する間は、可変パラメーターリストを持つ対応するTextReader.ReadLine()はありません。
なぜを推測します:dat cinが理解している空白で区切られたデータ形式は、もはやあまり使用されないということです。