当前位置: 代码迷 >> C语言 >> "Expression syntax in function save",?有这个错误,不知怎么修改. ...
  详细解决方案

"Expression syntax in function save",?有这个错误,不知怎么修改. ...

热度:1315   发布时间:2007-06-02 11:40:41.0
"Expression syntax in function save",?有这个错误,不知怎么修改.

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);
}

搜索更多相关的解决方案: syntax  Expression  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);
}

发现了几个问题:
main 函数在 save 函数里面了。
而且有两没有用的大括号。
FILE *fp1,*fp2; 应该是全局变量吧?


----------------解决方案--------------------------------------------------------
非常谢谢"herbert_1987"!
因为是初学C语言,好多东西还没有弄清楚,还请你们多多指教啊!
----------------解决方案--------------------------------------------------------
  相关解决方案