使用结构不同的代码与c程序联系经理

现在我遇到了另一个问题,在我改变了如下所示的编码之后,它仍然显示出错误。 在编码内部,没有任何红色下划线,因此我无法找出错误的位置。 那么这个编码有什么错误吗?

struct contact { char name[20],email[20]; int hpnum; }add; int option; FILE *f; void addcontact(struct contact list[100]); void read(struct contact list[100]); int main (void) { struct contact list[100]; system("cls"); printf("==========Welcome to Jeffery's Contact System Management==========\n"); printf("\t\t\tContact System Main Menu\n"); printf("[1] Create a New Contact\n"); printf("[2] Modified Existing Contact\n"); printf("[3] Delete Existing Contact\n"); printf("[4] Search Existing Contact\n"); printf("[5] Exit\n"); printf("Please enter one of your option.\n"); scanf("%d",&option); switch(option) { //add new contact case 1:addcontact(list);read(list); break; } getch(); } void addcontact(struct contact list[100]) { char name[20],email[20]; int hpnum,no; printf("\nContact Name: "); scanf("%s",list[no-1].name); fflush(stdin); printf("\nHandphone Number: "); scanf("%d",&list[no-1].hpnum); fflush(stdin); printf("\nE-mail: "); scanf("%s",list[no-1].email); } void read(struct contact list[100]) { FILE *f; f=fopen("contact.txt","w"); fwrite(list,sizeof(list),100,f); fclose(f); } 

首先, fflush(stdin); 是未定义的错误。 应该使用fflush(stdout);

其次,在函数addcontact(struct contact list[100])变量no中没有分配任何值,并且你在scanf()函数中使用垃圾值。

read()函数fwrite(list,sizeof(list),100,f); 这应该是错的。

 fwrite(list, sizeof(struct contact), 100, f); 

我不确定,但它看起来你打算阅读多个联系人所以你还需要一个循环机制可能在addcontact()函数内