我想存储由空格分隔的命令行输入,以存储在不同的变量中。例如,如果输入为0 1 2 3
,则为a=0,b=1,c=2,d=3
。
代码如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter L,D,S,C");
Console.Read();
int l = Convert.ToInt32(args[0]);
int d = Convert.ToInt32(args[1]);
int s = Convert.ToInt32(args[2]);
int c = Convert.ToInt32(args[3]);
}
}
}
答案 0 :(得分:2)
您可以使用Console.ReadLine()
,然后您使用函数String.Split()
轻松拆分它,在您的情况下,您将使用String.Split(' ')
,它将返回一个字符串数组将使用空格分割
有关分割功能的更多信息:
http://msdn.microsoft.com/en-us/library/system.string.split(v=vs.110).aspx
答案 1 :(得分:2)
您应该使用Console.ReadLine,并且还应该将返回值存储到某个变量中:
string line = Console.ReadLine();
int[] numbers = line.Split(' ').Select(x => (int)x).ToArray();
同样正如大卫所说这些不是command line arguments
,这些是用户输入。我这样写是因为我看到你正在尝试使用Console.Read,如果你想学习如何在C#中使用命令行参数你应该看看这里:http://msdn.microsoft.com/en-us/library/cb20e19t.aspx
答案 2 :(得分:1)
这将逐个读取每个击键:
static void Main(string[] args)
{
Console.WriteLine("Enter L,D,S,C");
char ch = (char) Console.Read();
string a = ch.ToString();
ch = (char) Console.Read();
string b = ch.ToString();
....
}
或者只是阅读整个输入并在逗号上执行拆分:
static void Main(string[] args)
{
Console.WriteLine("Enter L,D,S,C");
string line = Console.ReadLine();
string[] ltrs = line.Split(',');
}