在变量中存储命令行参数

时间:2014-01-03 20:02:13

标签: c#

我想存储由空格分隔的命令行输入,以存储在不同的变量中。例如,如果输入为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]);



        }
    }
}

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(',');


    }