求助:高手帮忙看一下程序吧
求助,麻烦各位啊,我实在看不出来错在哪里
程序代码:#include<stdio.h>
#include<stdlib.h>
void main()
{
void showFile(char * filename, char *arr, int h, int w);
void mirrorTrans(char * arr, int h, int w);
char a[22][46];
char *p =&a[0][0];
showFile("F:\\pet.txt",p,22,46);//把文件打开,把十六进制转化十进制,去除掉意思是换行和回车的元素,其他的存在数组中,表示出来
mirrorTrans(p,22,46);//将图像关于y轴对称过来
printf("\n");
}
void showFile(char * filename, char *arr, int h, int w)
{
char c;
int i=0,j=1,b=0,m=0;
int d[100]={0};
FILE *f;
if((f=fopen(filename,"r"))==NULL)
{printf("can not open the file \n"); exit(0); }
while(i<w*h)
{
c=fgetc(f);
if((j%3==1)&&(c!='\n')) b=(c-48)*16;//由于文件有规律,转化方法:第一个数字*16+第二个数字
if((j%3==2)&&(c!='\n'))//判断第二个数字
{
if(c>='A'&& c<='F') //如果第二个数字为A到F
{
if((c=='A'||c=='D')&& (b==0))//将A D过滤掉,因为0A0D代表换行回车,把其值置零
{
b=0;
if(c=='D')//记住D的位置,到时显示时用来换行(因为0A0D连在一起)
{
d[m]=j;
m++;
}
}
else
{
b=b+c-55;
*(arr+i)=(char) b;
i++;
b=0;
}
}
else//转化为十进制,第一个数字*16与c-48相加一起,赋值给b,b再给数组
{
b=b+c-48;
*(arr+i)=(char) b;
i++;
b=0;
}
}
if(c!='\n') j++;//文本中的空格过滤
}
for(i=0,m=0;i<w*h;i++)
{
if(((d[m]-2)/3-2*m )==i+1)//添加文本中的元素(换行和回车)
{
printf("\n");
m++;
}
printf("%c",*(arr+i));
}
fclose(f);
}
void mirrorTrans(char * arr, int h, int w)
{
int i,j;
char g;
for(i=0;i<h;i++)
for(j=0;j<w;j++)
{
if(w*i+j==46*i)//由于有规律性,判断换行
printf("\n");
g=*(arr+w-j+i*w);
switch(g)//将图案给对称过来
{
case'\\':g=g-45;break;
case'(':g=g+1; break;
case')':g=g-1; break;
case'/':g=g+45; break;
case'}':g=g-2; break;
case'p':g=g+1; break;
default:g=g;
}
printf("%c",g);
}
}
主要有两个问题:
1第一个函数正确的图应该是左边空一格啊,可是我空了2格!
2第二个函数左下角出现了“?”,而且应该要左移一格啊!
我不知道是不是哪一部分存在理解错误?或者在哪个步骤多存了空格啊?
文件内容如下:
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 2F 7D 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 2F 20 7D 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 5F 5F 5F 5F 5F
5F 5F 5F 5F 5F 5F 5F 5F 2F 20 20 7D 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 5F 5F 2F 5F 20 20 2E 3A
3A 3A 3A 2E 2D 27 2D 28 2F 2D 2F 29 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 5F 2F 3A 20 20 2E 3A 3A 3A 3A 2E
2D 27 20 2E 2D 27 5C 2F 5C 5F 27 20 29 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 2F 3A 20 20 2E 3A 3A 3A 3A 2E 2F 20
20 20 2D 2E 5F 2D 2E 20 20 70 5C 7C 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 2F 3A 20 28 22 22 22 22 2F 20 20
20 20 22 2E 20 20 28 5F 5F 2F 7C 7C 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 5C 3A 3A 29 2E 2D 27 20 20 2D
2E 5F 20 20 5C 2F 20 5C 5C 2F 5C 7C 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 5F 5F 5F
5F 5F 5F 2E 2D 27 27 29 2F 20 20 27 2D 27 2E 20
2E 20 27 2E 20 7C 20 20 28 69 5F 4F 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 2E 2D 27 20 20 20
20 20 20 5C 20 20 20 20 20 20 20 2D 27 20 20 20
20 20 20 27 5C 7C 20 20 20 20 20 20 20 20 0D 0A
20 20 20 20 20 5F 5F 5F 2E 2F 20 20 20 20 20 20
2E 2D 27 7C 20 20 20 20 20 20 20 27 2E 20 20 28
20 20 20 20 5C 5C 20 20 20 20 20 20 20 20 0D 0A
20 20 2E 2D 27 20 20 20 3A 20 20 20 20 20 20 27
5F 20 20 5C 20 20 20 20 20 20 20 20 20 27 2D 27
5C 20 20 2F 7C 2F 20 20 20 20 20 20 20 20 0D 0A
20 2F 20 20 20 20 20 20 29 5C 5F 20 20 20 20 20
20 27 2D 20 29 5F 5F 5F 5F 5F 5F 5F 5F 5F 2E 2D
7C 5F 2F 5E 5C 20 20 20 20 20 20 20 20 20 0D 0A
20 28 20 20 20 2E 2D 27 20 20 20 29 2D 2E 5F 2D
3A 20 20 2F 20 20 20 20 20 20 20 20 5C 28 2F 5C
27 2D 2E 5F 20 27 2E 20 20 20 20 20 20 20 0D 0A
20 20 28 20 20 20 29 20 20 5F 2F 2F 5F 2F 7C 3A
20 20 2F 20 20 20 20 20 20 20 20 20 20 27 5C 28
29 20 20 20 27 5C 5F 5C 20 20 20 20 20 20 0D 0A
20 20 20 28 20 28 20 20 20 5C 28 29 20 20 20 29
5F 2F 20 20 20 20 20 20 20 20 20 20 20 20 20 29
2F 20 20 20 20 20 20 5C 5C 20 20 20 20 20 0D 0A
20 20 20 20 29 20 20 20 20 20 5C 5C 20 20 28 5F
29 20 20 20 20 20 20 20 20 20 20 20 20 20 2F 2F
20 20 20 20 20 20 20 20 29 5C 20 20 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 5F 6F 5C 20 20 5C
5C 20 20 20 20 20 20 20 20 20 20 20 20 28 6F 5F
20 20 20 20 20 20 20 7C 5F 5F 5C 20 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 5C 5F 2F 20 20 20
5C 5C 5F 5F 20 20 20 20 20 20 20 20 20 20 29 5F
5C 20 20 20 20 20 20 20 20 20 20 20 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 29 5F 5F 5C 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 0D 0A
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20







