高手们看看这个文件输入输出程序

王朝知道·作者佚名  2010-06-21
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

#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之间的一位数.

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航