Цикл считывающий лабиринт из файла добавляет лишнюю пустую строку в начале и не считывает последней

Программа правильно считывает количество столбцов и строк, хорошо работает с лабиринтами 8х8 (квадратными) или 9х8 (колонн больше чем строк), но с 8х9 не видит последней строки. Запоминается все в таблицу Lab. Сам код:

ifstream we("lab.txt");
int n, m, i, j;
pole p1, p2, p3;

we >> n >> m;
int Lab[n][m];

string s;

    for (i = 1; i <= m; i++) {
        we >> s;
        for (j = 0; j<n; j++) {
            switch (s[j]){
                case '-':
                    Lab[j][i]=0; break;
                case 'x':
                    Lab[j][i]=-1; break;
                case 'w':
                    Lab[j][i]=0; p3.w=i; p3.k=j; break;
                case 'o':
                    Lab[j][i]=1; p1.w = i; p1.k = j; break;
                default:
                    Lab[j][i]=0;
    }

В текстовом файле первая строка занята параметрами n и m, поэтому цикл начинается не с 0.


Ответы (1 шт):

Автор решения: Zayvik

В этом куске кода проблема была только в том, что неправильно запоминались p3.w и p1.w, их значения нужно было уменьшить на один для правильного размещения точки старта и выхода в таблице Lab.

→ Ссылка