如何从文本文件读取到数组?

时间:2013-04-05 14:02:41

标签: c# arrays readfile

每个人都有什么,

我的代码中有这个问题,我无法弄清楚如何从文本文件中读取并将其放在c#中的双向数组[1024,8]的二维数组中。

0   148.9    19.4    20.2   112.6    41.9   205.7    46.7    87.2 
1    41.4    97.1    86.4   102.5    99.1   183.1    47.7    84.0
2   154.8   303.1   252.2   110.7    74.5    59.7   193.7   361.6 
.
.
1023    40.8   136.8   222.1    39.5   104.9    35.3    76.0   111.4 

我试着逐行阅读这个文件,但这种方式对我没有帮助

static void Main(string[] args)
{
    int counter = 0;
    string line;
    double[] task = new double[8];
    // Read the file and display it line by line.
    System.IO.StreamReader file =
       new System.IO.StreamReader("c:\\test.txt");
    //int count = 0;
    while ((line = file.ReadLine()) != null && counter <= 1023)
    {
        //count++;
        //Console.WriteLine(count);

        string[] numbers = new string[8];
        int numCount = 0;
        for (int i = 0; i < line.Length; i++)
        {
            if (line[i] != ' ')
            {
                numbers[numCount] = "";
                while (line[i] != ' ')
                {
                    numbers[numCount] += line[i];
                    i++;
                }
                numCount++;
            }
        }
        for (int i = 0; i < 8; i++)
        {
            task[i] = Convert.ToDouble(numbers[i]);
        }
        counter++;
        Console.WriteLine("The array contain:");
        for (int i = 0; i < 8; i++)
            Console.WriteLine(task[i]);
    }
    file.Close();
    // Suspend the screen.
    Console.ReadLine();
}

1 个答案:

答案 0 :(得分:1)

  

你的代码看起来很整洁!将代码替换为for (int i = 0; i < line.Length; i++)并放置此

int i=0;

    while (i < line.Length)
       {

            if (line[i] != ' ')
           {
               numbers[numCount] = "";
               while (line[i] != ' ')
               {

                   numbers[numCount] += line[i];
                   i++;
                   if (i >= line.Length) break;
               }
               numCount++;

           }
           i++;
       }
        for (int ui = 0; ui < 8; ui++)
       {
           task[ui] = Convert.ToDouble(numbers[ui]);
       }

       counter++;



       Console.WriteLine("The array contain:");
       for (int ui = 0; ui < 8; ui++)
           Console.WriteLine(task[ui]);