【C#】標準入力でスペース区切りで入力する
C#における標準入力は、以下のように書く。
1 2 3 4 5 6 7 8 9 |
using System; class Program { static void Main(string[] args) { int a; a = int.Parse(Console.ReadLine()); //標準入力 } } |
どこの入門サイトでもこう書いているだろう。
ReadLine()はstring型であることを注意したい。そのため、Parseは、数値変換を行っている。だから型キャストは、intである。
しかし、このままだと、引数a, bを入力したいとき、いちいち改行して入力しなければならないのだ。
例えば、
2 3
のようにスペースで区切りたいと私は考えたのだ。
しかし、どれだけググってもいい文献は出てこなかった。
そこで下記のように書くとうまくいくとわかったので、備忘録として書いておく。
1 2 3 4 5 6 7 8 9 10 11 12 |
using System; class Program { static void Main(string[] args) { int a,b; string[] str = Console.ReadLine().Split(' ');//2つ以上のスペース区切り入力の取得 a = int.Parse(str[0]); //数値で受け取りたい場合は変換する b = int.Parse(str[1]); Console.WriteLine("a = {0} b = {1}", a, b); } } |
Splitを繋げてやるとうまくいくということが分かりました。