RT
运行了一下,显示有一错误,"Expression syntax in function save"
#include<stdio.h>
#define SIZE 5
struct person_type
{char name[10];
char tel[15];
char addr[50];
}
person[SIZE];
void save()
{FILE *fp1,*fp2;
int i;
if((fp1=fopen("person_list","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
if(fwrite(&person[i],sizeof(struct person_type),1,fp1)!=1)
printf("file write error\n");
fclose(fp1);
void main()
{int i;
for(i=0;i<SIZE;i++)
scanf("%s%s%s",person[i].name,&person[i].tel,&person[i].addr);
save();
fp2=fopen("person_list","rb");
{fread(&person[i],sizeof(struct person_type),1,fp2);
printf("%-10s%-15s%-50s\n",person[i].name,person[i].tel,person[i].addr);
}}
fclose(fp2);
}
----------------解决方案--------------------------------------------------------
楼主的程序排版不好,改了一下:
#include<stdio.h>
#define SIZE 5
struct person_type
{char name[10];
char tel[15];
char addr[50];
}
person[SIZE];
void save()
{
FILE *fp1,*fp2;
int i;
if((fp1=fopen("person_list","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i<SIZE;i++)
if(fwrite(&person[i],sizeof(struct person_type),1,fp1)!=1)
printf("file write error\n");
fclose(fp1);
void main()
{
int i;
for(i=0;i<SIZE;i++)
scanf("%s%s%s",person[i].name,&person[i].tel,&person[i].addr);
save();
fp2=fopen("person_list","rb");
{
fread(&person[i],sizeof(struct person_type),1,fp2);
printf("%-10s%-15s%-50s\n",person[i].name,person[i].tel,person[i].addr);
}
}
fclose(fp2);
}
发现了几个问题:
main 函数在 save 函数里面了。
而且有两没有用的大括号。
FILE *fp1,*fp2; 应该是全局变量吧?
----------------解决方案--------------------------------------------------------
非常谢谢"herbert_1987"!
因为是初学C语言,好多东西还没有弄清楚,还请你们多多指教啊!
----------------解决方案--------------------------------------------------------