不确定行列数的迷宫文件传入

img


迷宫文件是随机生生成的,不确定行列数,
我想问一下,怎么才能从迷宫文件中把这个文件给读取出来赋给一个二维数组?并且知道这个迷宫文件是几行几列呢?

帖2个典型的迷宫文本文件出来,分析一下。
加入了字符转数值。

img

#include <stdio.h>
int main()
{
    char tc[1000][1000];
    char ti[1000][1000];
    int columns=1,lines=1;
    int c;
    FILE *fp;
    fp=fopen("MiGong51.txt","rb");
    if(fp)
    {
        while((c=fgetc(fp)) != EOF)
          {
               tc[lines][columns]=c;
               printf("%c",tc[lines][columns]);
               columns++;
               if(c=='\n') lines++;
               if(c=='\n') columns=1;
          }
        fclose(fp);    
        printf("\nlines=%d columns=%d \n",lines,columns);
        for (int i=1;i<=lines;i++)
          {
            for(int j=1;j<columns;j++)
            {
                ti[i][j]=(tc[i][j]-'0');
          printf("ti[%2d][%2d]=char%c  int=%d ",i,j, tc[i][j],ti[i][j]);
                      }
          printf("\n");
          }
    }
    
    return 0;
}

大致的代码如下

/*存储迷宫的二维数组 数字 0和1*/
int a[50][50];  
int row = 0, column = 0; /* 迷宫的行和列 */
int i = 0, j = 0;
char ch;
FILE *fp = fopen("D:\\demo.txt", "r");
while( (ch=fgetc(fp)) != EOF ){
    if (ch != '\n') { a[i][j] = ch - '0';  j++;}
    else {
        i++;
        if(column == 0) column = j; /*列数*/
        j=0;
    } 
}
row = i++; /*行数*/