在这个简单的程序中,我的目标是扫描一个文件(称为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;
}
这就是map.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;
}