2016-09-21 3 views
0
string[] words; 
    numOfMatrix = int.Parse(fileIn.ReadLine()); 

    nameOfMatrix1 = fileIn.ReadLine(); 
    words = fileIn.ReadLine().Split(' '); 
    matrix1H = int.Parse(words[0]); 
    matrix1W = int.Parse(words[1]); 
    matrix1 = new int[matrix1H + 1, matrix1W + 1]; 
    for (int i = 1; i <= matrix1H; i++) 
    { 
    int k = 0; 
    words = fileIn.ReadLine().Split(' '); 
    for (int j = 1; j <= matrix1W; j++) 
    { 
     matrix1[i,j] = int.Parse(words[k]); 
     k++; 
    } 
    } 

Ввод данных SampleАнализировать массив строк в Int Matrix

3 
Matrix One 
5 7 
45 38 5 56 18 34 4 
87 56 23 41 75 87 97 
45 97 86 7 6 8 85 
67 6 79 65 41 37 4 
7 76 57 68 8 78 2 
Matrix Two 
6 8 
45 38 5 56 18 34 4 30 
87 56 23 41 75 87 97 49 
45 97 86 7 6 8 85 77 
67 6 79 65 41 37 4 53 
7 76 57 68 8 78 2 14 
21 18 46 99 17 3 11 73 
Matrix Three 
6 6 
45 38 5 56 18 34 
87 56 23 41 75 87 
45 97 86 7 6 8 
67 6 79 65 41 37 
7 76 57 68 8 78 
21 18 46 99 17 3 

Необработанное исключение: System.FormatException: Входная строка была не в правильном формате. в System.Number.StringToNumber (String ул, опции NumberStyles, NumberBuffer & номер, NumberFormatInfo информация, Boolean parseDecimal) на System.Number.ParseInt32 (String s, NumberStyles стиль, NumberFormatInfo информация) в System.Int32.Parse (String s)

В строке, где я разбираю слова [k] в matrix1 [i, j] Я получаю сообщение об ошибке. Parse отлично работает в первый раз, когда я использую слова [], но не во второй раз, когда я что-то читал.

+0

Что такое входной файл? Какая у вас ошибка? –

+0

Необработанное исключение: System.FormatException: строка ввода не была в правильном формате. – MDub

+0

В интересах ясности вы должны, вероятно, поставить сообщение об ошибке, которое вы получаете в самом вопросе. Также вы должны уточнить, являются ли эти данные выборки выходными данными или вводами? – leigero

ответ

-2

Проблема заключается в том, чтобы читать следующую строку изнутри внутреннего цикла. Вам нужно прочитать строку в строке вместо каждой ячейки.

var numOfMatrix = int.Parse(fileIn.ReadLine().Trim()); 
var matrices = new int[numOfMatrix][,]; 
for (var matrixNumber = 0; matrixNumber < numOfMatrix; matrixNumber++) 
{ 
    var nameOfMatrix1 = fileIn.ReadLine().Trim(); 
    var words = fileIn.ReadLine().Trim().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 
    var matrix1H = int.Parse(words[0]); 
    var matrix1W = int.Parse(words[1]); 

    var matrix1 = matrices[matrixNumber] = new int[matrix1H, matrix1W];    
    // don't use <= 
    for (int i = 0; i < matrix1H; i++) 
    { 
     // read line line outside of the inner loop 
     words = fileIn.ReadLine().Trim().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 
     // don't use <= 
     for (int j = 0; j < matrix1W; j++) 
     { 
      matrix1[i, j] = int.Parse(words[j]); 
     } 
    } 
} 
+0

Я вижу, где это может повлиять на вещи, но я все равно получаю ту же ошибку в одной строке при запуске моей программы. – MDub

+0

Как вы можете быть уверены, что этот ответ правильный, даже не зная, что входные данные находятся в программе OP. – leigero

+0

, потому что, если он должен был проверить 'слова [k]' на своей машине, когда это исключение, он увидит, что он говорит 'Matrix' –

Смежные вопросы