哪位C语言高手来比较一下这两个程序的不同,小弟不胜感激。
目的是从文件map.txt中读取矩阵填入二维数组中,并根据文件内容(0和1),对棋盘格进行填充。
为啥第一个不好用而第二个却可以运行?
所有的报错都在pm[j]=fgetc(fp);这一行
ps:
是传递参数有问题吗?
还是在子函数中不能读取文件?
程序一:
#include
#include
void fill(char *pm[][])
{
FILE *fp;
int i,j,gd,gm;
if((fp=fopen("map.txt","r"))==NULL)
{
printf("cannot open map file\nPress any key to exit");
getch();
exit(0);
}
for(i=0;i
#include
void main()
{
FILE *fp;
int i,j,gd,gm;
char pm[6][6];
if((fp=fopen("map.txt","r"))==NULL)
{
printf("cannot open map file\nPress any key to exit");
getch();
exit(0);
}
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{pm[j]=fgetc(fp);}/*把文件内的字符读入数组内*/
fgetc(fp);/*抵消每一行末尾的回车*/
}
gd=DETECT;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"");
setbkcolor(WHITE);
setcolor(LIGHTBLUE);
for(i=10;i<=90;i+=10)
{
for(j=10;j<=90;j+=10)
{
rectangle(i,j,(i+10),(j+10));/*画格子*/
if(pm[(j/10)][(i/10)]=='1'&&i<=50&&j<=50)
{
setfillstyle(1,RED);
floodfill((i+2),(j+2),LIGHTBLUE);
}
}
}
getch();
closegraph();
}
map.txt内容:
100000
010000
001000
000100
000001
111111
|