输入五个人的姓名和电话号码,把它们保存在C:\phone.dat,然后从这个文件全部读出显示在出来。这个程序错在那里? #include "stdio.h" struct phone /*定义结构型变量*/ {char name; long num; } pho[5];
void save()/*定义保存文件的函数*/ {FILE *fp; int i; if((fp=fopen("c:\phone123.dat","wb"))==NULL) {printf("cannot open file1!\n"); return; } for(i=0;i<5;i++) if(fwrite(&pho[i],sizeof(struct phone),1,fp)!=1) printf("file write error!"); }
void read()/*定义读文件的函数*/ { FILE *fp; int i; if((fp=fopen("c:\phone123.dat","rb"))==NULL) {printf("cannot open file2!\n"); return; } for(i=0;i<5;i++) {if(fread(&pho[i],sizeof(struct phone),1,fp)!=1) printf("file read error!\n"); printf("%s-4%4ld",pho[i].name,pho[i].num);/*边读边输出*/ }
} main()/*主函数*/ {int h; for(h=0;h<5;h++) scanf("%s%ld",pho[h].name,&pho[h].num);/*输入姓名和号码*/ save();/*调用函数*/ read();/*调用函数*/
getch(); }