C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

標準入力 複数入力

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■88932 / inTopicNo.1)  標準入力 複数入力
  
□投稿者/ ヤザク (1回)-(2018/10/16(Tue) 13:12:16)

分類:[C#] 

visual studio 2018 C# コンソールアプリケーション


標準入力readlineを用いて、1行で複数の変数に値を入力することはできないでしょうか?
引用返信 編集キー/
■88933 / inTopicNo.2)  Re[1]: 標準入力 複数入力
□投稿者/ Hongliang (711回)-(2018/10/16(Tue) 13:19:19)
// VS2018って製品は無いような

> 標準入力readlineを用いて、1行で複数の変数に値を入力することはできないでしょうか?
好きにすればいいと思いますが、どこらへんでつまづきましたか?
こんな感じの入力に対してこんな感じのコードを書きたいという疑似コードを提示してもらえれば助言もしやすいかと思います。
あと、StringのSplitメソッドはご存知ですか?
引用返信 編集キー/
■88934 / inTopicNo.3)  Re[2]: 標準入力 複数入力
□投稿者/ ヤザク (2回)-(2018/10/16(Tue) 13:24:12)
No88933 (Hongliang さん) に返信
> // VS2018って製品は無いような
>
>>標準入力readlineを用いて、1行で複数の変数に値を入力することはできないでしょうか?
> 好きにすればいいと思いますが、どこらへんでつまづきましたか?
> こんな感じの入力に対してこんな感じのコードを書きたいという疑似コードを提示してもらえれば助言もしやすいかと思います。
> あと、StringのSplitメソッドはご存知ですか?

返信ありがとうございます、2017でした失礼いたしました。

splitメソッドは知っていますが、配列を用いずにint型変数にそのまま入れたいのです。。。。。

int a,b = 〜〜
みたいな感じにはできないでしょうか??
引用返信 編集キー/
■88935 / inTopicNo.4)  Re[3]: 標準入力 複数入力
□投稿者/ 魔界の仮面弁士 (1875回)-(2018/10/16(Tue) 14:03:45)
No88934 (ヤザク さん) に返信
> splitメソッドは知っていますが、配列を用いずにint型変数にそのまま入れたいのです。。。。。

配列を用いることができないのは、どのような理由からでしょうか?


> int a,b = 〜〜
> みたいな感じにはできないでしょうか??

そのように書きたいなら、分解用のメソッドを用意するとかですかね。

public class Program
{
 public static void Main()
 {
  Console.WriteLine("空白で区切って、数値を2つ入れてください。");

  (int a, int b) = Console.ReadLine().Split(' ').Select(int.Parse);


  Console.WriteLine(a);
  Console.WriteLine(b);
 }

}

public static class Splitter
{
 public static void Deconstruct<T>(this IEnumerable<T> values, out T var1, out T var2)
 {
  var1 = values.First();
  var2 = values.Skip(1).First();
 }
}
引用返信 編集キー/
■88936 / inTopicNo.5)  Re[4]: 標準入力 複数入力
□投稿者/ ヤザク (4回)-(2018/10/16(Tue) 14:09:27)
No88935 (魔界の仮面弁士 さん) に返信
> ■No88934 (ヤザク さん) に返信
>>splitメソッドは知っていますが、配列を用いずにint型変数にそのまま入れたいのです。。。。。
>
> 配列を用いることができないのは、どのような理由からでしょうか?
>
splidメソッドを用いた場合、入力した複数の値が一つの配列に入ることになると思うのですが

わかりやすく管理したいので、配列を用いたとしてもそれぞれ別の配列に格納するようにしたいです 汗
引用返信 編集キー/
■88937 / inTopicNo.6)  Re[5]: 標準入力 複数入力
□投稿者/ Hongliang (712回)-(2018/10/16(Tue) 14:13:00)
> splidメソッドを用いた場合、入力した複数の値が一つの配列に入ることになると思うのですが
> わかりやすく管理したいので、配列を用いたとしてもそれぞれ別の配列に格納するようにしたいです 汗

それだけなら、一旦Splitで分けた後、各々の配列要素を個別の変数に代入すればいいだけでは?
引用返信 編集キー/
■88938 / inTopicNo.7)  Re[5]: 標準入力 複数入力
□投稿者/ 魔界の仮面弁士 (1876回)-(2018/10/16(Tue) 14:18:09)
No88936 (ヤザク さん) に返信
> わかりやすく管理したいので、配列を用いたとしてもそれぞれ別の配列に格納するようにしたいです 汗

詰めなおすだけでは?

var values = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();

(int a, int b) = (values[0], values[1]);
引用返信 編集キー/
■88939 / inTopicNo.8)  Re[6]: 標準入力 複数入力
□投稿者/ ヤザク (5回)-(2018/10/16(Tue) 14:19:10)
No88937 (Hongliang さん) に返信
>>splidメソッドを用いた場合、入力した複数の値が一つの配列に入ることになると思うのですが
>>わかりやすく管理したいので、配列を用いたとしてもそれぞれ別の配列に格納するようにしたいです 汗
>
> それだけなら、一旦Splitで分けた後、各々の配列要素を個別の変数に代入すればいいだけでは?

あー・・・確かにその通りですね 汗
先に配列に入れてから、変数に代入する考えはなかったです・・・。

それでやってみたいと思いますm(__)m
引用返信 編集キー/
■88940 / inTopicNo.9)  Re[6]: 標準入力 複数入力
□投稿者/ ヤザク (6回)-(2018/10/16(Tue) 14:26:44)
No88938 (魔界の仮面弁士 さん) に返信
> ■No88936 (ヤザク さん) に返信
>>わかりやすく管理したいので、配列を用いたとしてもそれぞれ別の配列に格納するようにしたいです 汗
>
> 詰めなおすだけでは?
>
> var values = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
>
> (int a, int b) = (values[0], values[1]);

それでいけそうです。



お二方ともありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ