题目是利用函数void showFile(char * filename, char *arr, int h, int w)读取txt文件,其中参数fileName的实参应为文件路径名,arr为二维数组首元素的地址,h为高,w为宽,(意思是保存在大小为h*w的二维数组)利用在main函数定义的二维数组存放数据。
我的#include<stdio.h>
#include<stdlib.h>
int main()
{
void showFile(char * filename, char *arr, int h, int w);
char arr[22][46];
char *p;
showFile("D:\\pet.txt",*arr,22,46);
for(p=*arr;p<*(arr+1012);p++)
{
printf("%c",*p);
}
printf("\n");
return 0;
}
void showFile(char * filename, char *arr, int h, int w)
{
int i=1, j=0;
char c;
FILE *f;
if((f=fopen(filename,"r"))==NULL)
{
printf("can not open the file \n");
exit(0);
}
while(!feof(f))
{
c=fgetc(f);
if(c=='\n'|| c==' ')
{
c=fgetc(f); i++;i++;
}
if(i%3==1)
{ *(arr+j)=(c-48)*16;i++;}
else
{
if(c>='A'&&c<='E')
{
if(c=='A'&&c=='D')
{*(arr+j)=0;}
else
{*(arr+j)=*(arr+j)+c-55;j++;}
}
else
{
*(arr+j)=*(arr+j)+c-48;
j++;
}
i++;
}
}
fclose(f);
}
基本思路是:删去文件中的换行,并将十六进制转为十进制,保存在数组里
编译没错,可是无法运行,不知道是存在什么问题,各位帮帮忙啊
然后这是文件的前面部分
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
|