How to read from text file to array? [closed]

北慕城南 提交于 2019-12-14 03:33:22

问题


what's up everybody,

I have this problem in my code and I couldn't figure out how to read from text file and put it in 2-dimension array of double type array [1024,8] in c# .

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 

I tried to read this file line by line, but this way didn't help me

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:


your code seems tidy! Replace your code from
for (int i = 0; i < line.Length; i++) and place this

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]);


来源:https://stackoverflow.com/questions/15835965/how-to-read-from-text-file-to-array

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!