struct subscriber
{
char phonenumber[20];
char name[50];
float amount;
}s;
void modifyrecords()
FILE *f;
char phonenumber[20];
long int size=sizeof(s);
if((f=fopen("c:/file.ojs","rb+"))==NULL)
exit(0);
system("cls");
printf("Enter phone number of the subscriber to modify:");
scanf("%[^\n]",phonenumber);
fflush(stdin);
while(fread(&s,sizeof(s),1,f)==1)
{
if(strcmp(s.phonenumber,phonenumber)==0)
{
system("cls");
printf("\n Enter phone number:");
scanf("%s",&s.phonenumber);
printf("\n Enter name: ");
fflush(stdin);
scanf("%[^\n]",&s.name);
printf("\n Enter amount: ");
scanf("%f",&s.amount);
fseek(f,-size,SEEK_CUR);
fwrite(&s,sizeof(s),1,f);
break;
}
}
fclose(f);
}
C:\ Users *** \ Desktop \ a.c | 394 | error:参数'size'已初始化| 我在这段代码中得到参数'size'初始化错误。谷歌搜索后我发现我可能必须通过某些参数来抑制这些错误。这是唯一的解决方案吗?实际上我正在使用Code :: Blocks,所以如果只是如何传递命令行参数呢?
答案 0 :(得分:6)
这里有一个简单的语法错误:
void modifyrecords()
应该是:
void modifyrecords() {
另外,这个:
scanf("%s",&s.phonenumber);
应该是
scanf("%s",s.phonenumber);
这同样适用于s.name
。