2

这是对我不起作用的代码部分。我声明了一个指向结构的指针,并尝试在函数上使用它,尽管 c 表示它不能将主要人物转换为人物。

void display (char *s2,FILE *f1,int max);
void insert (FILE  *f1, struct person *p1);
void deletestring (FILE *f1,FILE *f2,char *s2,char *s1,char *file1,char *file2,int max);
void edit (FILE *f1,FILE *f2,char *s2,char *s1,char *file1,char *file2,struct person *p1,int max);
int main ()
{
    char s1[MAX],s2[MAX];
    FILE *f2,*f1;
    struct person
    {
           char id[MIN];
           char emer[MIN];
           char mbiemer[MIN];
           };
    struct person p1;
    struct person *pp1;
    pp1 = &p1;
    char *file1 = "f1.txt";
    char *file2 = "f2.txt";

    int zgjedhja=1;
    printf("Programi funksionon sipas shpjegimit \n :");
    printf("Shtypni 1 per te shtuar nje person \n Shtypni 2 per te ndryshuar informacionin e nje personi \n Shtypni 3 per te shfaqur te dhenat \n Shtypni 4 per te fshire nje person \n Shtypni -1 per te dale nga programi \n ");

    while (zgjedhja != -1 )
    {
          printf("Jepni zgjedhjen tuaj \n ");
          scanf(" %d " , & zgjedhja );
          switch (zgjedhja)
          {
                 case 1:      
                 f1=fopen(file1,"a");
                 insert (f1,pp1);
4

1 回答 1

3

该类型struct person具有main范围,因此在insert. 事实上,未指定成员的结构类型称为不完整类型。要消除此错误,请在函数之外声明结构。

struct person
{
    /* ... */
};

/* Function declarations. */

int main (void)
{
    /* ... */
}
于 2013-03-20T17:07:45.937 回答