在这个简单的程序中,我的目标是从文件(称为map.dat)中扫描矩阵。出于某种原因,每当我尝试扫描时,一切都会顺利进行到第6行。在获取第5行的所有元素之后,继续扫描第6行,该行会工作一段时间,然后当j == 10时,第6行的元素开始进入第5行,然后从第9行中删除第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文件中的内容:
........................................
....#####...............................
....#####...............................
....#####...............##############..
....#####.....###.......##############..
....#####.....###.......................
..............###........######.........
..............###........######.........
.........................######.........
........................................
答案 0 :(得分:1)
我刚刚打印了它,并且效果很好。
#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;
}