Заполнение 2d-массива из файла - C#
Формулировка задачи:
Нужно написать метод заполнения двухмерного массива (матрицы) из файла, при том, что неизвестно его кол-во строк/столбцов
Пож-та, поправьте меня или предложите, как лучше!void readMtrx()
{
const int row=3, col=3; // НЕТ, нужно, чтобы заранее не была известна размерность
string[] rX=null;
string filePath;
Console.Write("Путь файла: "); filePath = Console.ReadLine();
rX=File.ReadAllLines(filePath);
arrMtrx=new int[row,col];
for (int i=0; i<row; i++)
{
string[] rX2=rX[i].Split(' ');
for (int j=0; j<col; j++)
{
arrMtrx[i,j]=int.Parse(rX2[j]);
}
}
Console.ReadLine();
} 1 0 2
3 6 12
4 8 9
Помимо ввода нужно будет совершать различные операции с матрицей, например:
//Ввод матрицы с клав-ы
void inputMatrix(int[] args)
{
//Console.WriteLine("Введите размерность матрицы: ");
Console.Write("Введите кол-во строк матрицы: ");
m = Convert.ToInt32(Console.ReadLine()); //строки
Console.Write("Введите кол-во столбцов матрицы: ");
n = Convert.ToInt32(Console.ReadLine()); //столбцы
Console.WriteLine(" З А П О Л Н Е Н И Е ");
arrMtrx = new int[m, n];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
{
Console.Write("arrMtrx[" + i + "," + j + "] = ");
arrMtrx[i, j] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
Console.Write("{0:d} ", arrMtrx[i, j]);
Console.WriteLine();
}
Console.ReadLine();
}
//Вывод матрицы
void outMatrix(int[,] arrMtrx)
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
Console.Write("{0:d} ", arrMtrx[i, j]);
Console.WriteLine();
}
Console.WriteLine();
}
void dif() // Разность матриц
{
int dif = 0;
Dif = new int[m, n];
Console.WriteLine("Разность двух матриц:");
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
Dif[i,j] = arrMtrx[i, j] - arrMtrx[i, j];
//Console.Write("{0} ", dif);
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
Console.Write("{0:d} ", Dif[i, j]);
Console.WriteLine();
}
Console.WriteLine();
}
Как объявлены переменные в начале:
int[] intArray = null;
int[,] arrMtrx = null;
int[,] Sum = null, Dif = null;
int[,] r2 = null;
int m, n, inputChoiceLength;
int inputChoice = 0;
bool exit = true;Решение задачи: «Заполнение 2d-массива из файла»
textual
Листинг программы
do
{
row++;
values.Add (reader.ReadLine ().Split (' '));
} while (!reader.EndOfStream);