1
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 \ ac | 394 |エラー:パラメータ'size'が初期化されています| このコードでは、パラメータ「サイズ」が初期化されたエラーが発生しています。グーグルした後、私はこれらの種類のエラーを抑制するために特定の引数を渡さなければならないかもしれないことに気づきました。これが唯一の解決策ですか?実際、私はCode :: Blocksを使用しているので、コマンドライン引数を渡す唯一の方法はありますか?

4

1 に答える 1

8

ここに単純な構文エラーがあります:

void modifyrecords()

する必要があります:

void modifyrecords() {

また、これ:

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

する必要があります

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

そして、それは同様に当てはまりs.nameます。

于 2012-11-03T15:32:01.097 に答える