为什么我在C中获取参数初始化错误?

时间:2012-11-03 15:14:36

标签: c parameters initialization

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,所以如果只是如何传递命令行参数呢?

1 个答案:

答案 0 :(得分:6)

这里有一个简单的语法错误:

void modifyrecords()

应该是:

void modifyrecords() {

另外,这个:

scanf("%s",&s.phonenumber);

应该是

scanf("%s",s.phonenumber);

这同样适用于s.name