高手们看看这个文件输入输出程序
#include"stdio.h"
#define n 2
main()
{ int shuru(char array[n][n]);
void zhuanzhi();
char array[n][n];
int i=0;
int j=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{printf("input the %d,%d number:",i+1,j+1);
scanf("%c",&array[i][j]);
getchar();
}
printf("your arrary:\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%4c",array[i][j]);
printf("\n");
}
shuru(array);
zhuanzhi();
getch();
}
int shuru(char array[n][n])
{
FILE *fp;
int i,j;
char name[20];
printf("\ninput the file name you want save:\n");
gets(name);
getchar();
fp=fopen(name,"wt");
fwrite(array,n*n*sizeof(char),1,fp);
fclose(fp);
return;
}
void zhuanzhi()
{ char name1[20],name2[20];
char a[n][n];
char b[n][n];
FILE *fp1,*fp2;
int i=0;
int j=0;
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
a[i][j]=b[i][j]='0';
}
printf("\ninput the file name you want deal:\n");
gets(name1);
getchar();
if(fp1=fopen(name1,"rt")==NULL){printf("your file name is false!");return;}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
fread(&a[i][j],sizeof(char),1,fp1);//注意这里,为什么总
//是输入后的矩阵还是为初始后的矩阵那?怎么根本没有变化呢?困中
//啊
//高手们运行一下试试,莫非输入输出函数有问题????
fclose(fp1);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{printf("%c",a[i][j]);}
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
b[j][i]=a[i][j];
}
printf("\ninput the new name you want save:\n");
gets(name2);
getchar();
fp2=fopen(name2,"wt");
fwrite(b,n*n*sizeof(char),1,fp2);
fclose(fp2);
return;
}
//这是一个输入矩阵保存矩阵,之后输入刚才保存的文件名打开文件取
//矩阵再转置,再储存倒另一个文件中的程序,很简单,问题看中间部分
参考答案:if(fp1=fopen(name1,"rt")==NULL)
改成
if((fp1=fopen(name1,"rt"))==NULL)
即可.
注意,按照程序要求,输入的数字只能是0-9之间的一位数.