2013-04-05 117 views
-7

这是怎么回事大家,如何从文本文件读取数组?

我有我的代码这个问题,我无法弄清楚如何从文本文件中读取,并把它放在双类型数组[1024,8]在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 

我试图逐行读取这个文件行,但这种方式并不能帮助我

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(); 
} 
+7

什么问题你面对?你试过什么了? – 2013-04-05 14:04:36

+2

啊,你有一个代码!告诉我们你的尝试! – 2013-04-05 14:04:44

+2

使用'TextReader.ReadLine',然后将该行的值添加到数组 – Aphelion 2013-04-05 14:04:58

回答

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

非常感谢您,但还有其他方式可以在二维数组中使用 – 2013-04-05 15:16:10