从 C 语言中的文件扫描字符矩阵时出现问题



在这个简单的程序中,我的目标是从文件(称为map.dat(中扫描矩阵。出于某种原因,每当我尝试扫描它时,一切都很顺利,直到第 6 行。在获取第 5 行中的所有元素后,它继续扫描第 6 行,这工作了一段时间,然后当 j==10 时,第 6 行的元素开始进入第 5 行,然后第 9 行从矩阵中删除。我尝试使用字符串一次扫描一行,但结果似乎相同。

#include <stdio.h>
#include <stdlib.h>
#define ROWS 10
#define COLUMNS 40
int main(int argc,char* argv[])
{
FILE* fp=fopen("map.dat","r");
if(fp==NULL)
{
exit(1);
}
char m[ROWS][COLUMNS+2];
int i,j;
for(i=0; i<ROWS; i++)
{
for(j=0; j<COLUMNS+1; j++)
{
fscanf(fp,"%c",&m[i][j]);
}
}
return 0;
}

这是地图.dat文件中的内容:

........................................
....#####...............................
....#####...............................
....#####...............##############..
....#####.....###.......##############..
....#####.....###.......................
..............###........######.........
..............###........######.........
.........................######.........
........................................

我刚刚打印了它,它工作得很好。

#include <stdio.h>
#include <stdlib.h>
#define ROWS 10
#define COLUMNS 40
int main(int argc,char* argv[])
{
FILE* fp=fopen("/home/avidbots/Desktop/test/map.dat","r");
if(fp==NULL)
{
exit(1);
}
char m[ROWS][COLUMNS+2];
int i,j;
for(i=0; i<ROWS; i++)
{
for(j=0; j<COLUMNS+1; j++)
{
fscanf(fp,"%c",&m[i][j]);
}
}
for(i=0; i<ROWS; i++)
{
for(j=0; j<COLUMNS+1; j++)
{
printf("%c", m[i][j]);
}
printf("n");
}
return 0;
}

最新更新