user-0 提问: 求助大佬，C语言程序中实现文件的增删改查

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: #include<stdio.h>                //头文件 #include<stdlib.h>               //头文件 #include<string.h>               //头文件  typedef struct {     int  score;               /*定义编号*/     char name[10];            /*定义商品名称*/     char num[15];             /*定义数量*/     char email[20]; /*定义邮箱*/     char age[8]; /*定义保质期*/     char adds[20]; /*定义所在位置*/  }Person;  Person pe[80];  int menu_select() {     char c;     do{         system("cls");         printf("\t\t欢迎进入超市内部信息网\n");        //进入时显示的标题         printf("\t\t你可以选择以下内容\n");                           //进入时显示的标题         printf("\t\t *****嘉苑超市系统***** \n");          printf("\t\t 1. 添加超市记录  \n");                               //添加超市记录         printf("\t\t2. 显示超市记录  \n");                               //显示超市记录         printf("\t\t3. 删除超市记录  \n");                               //删除超市记录         printf("\t\t 4. 查询超市记录  \n");                               //查询超市记录         printf("\t\t 5. 修改超市记录  \n");                               //修改超市记录         printf("\t\t0. 退出运行程序  \n");                               //退出运行程序         printf("\t\\n");         printf("\t\t请您选择(0-5):");           //进行选择         c=getchar();         if (c == '\n')             continue;     }while(c<'0'||c>'5');      return(c-'0'); }  int Input(Person per[],int n)                             //开始增加记录 {     int a=0;     char xh='a',x[10];     while(xh!='n'&&xh!='N')     {         printf("\t编号:");                              //增加编号记录         //scanf("\t%d",&per[n+a].score);         scanf("%d",&per[n+a].score);         printf("\t商品名称:");                          //增加商品名称记录         //scanf("\t%s",per[n+a].name);         scanf("%s",per[n+a].name);         printf("\t保质期:");                            //增加保质期记录         //scanf("\t%s",per[n+a].age);         scanf("%s",per[n+a].age);         printf("\t数量:");                              //增加数量记录         //scanf("\t%s",per[n+a].num);         scanf("%s",per[n+a].num);         printf("\t所在位置:");                          //增加所在位置记录         //scanf("\t%s",per[n+a].adds);         scanf("%s",per[n+a].adds);         printf("\t电子邮箱:");                          ////增加电子邮箱记录         //scanf("\t%s",per[n+a].email);         scanf("%s",per[n+a].email);         getchar();   //for '\n'         gets(x);         printf("\n\t是否继续添加?(Y/N)");         //scanf("\t%c",&xh);                                  //提示您是否继续添加         scanf("%c",&xh);                                  //提示您是否继续添加         a++;     }     return(n+a); }  void Display(Person per[],int n)         //进行显示所添加的记录，其编号 名称 数量 保质期 所在位置 电子邮箱 {     int i;     printf("----------------------------------------------------------------------\n");                          /*格式*/     printf("编号    名称     数量      保质期     所在位置        电子邮箱\n");     printf("----------------------------------------------------------------------\n");     for(i=1;i<n+1;i++)     {         printf("%-7d%-10s%-9s%-13s%-15s%-14s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); //设置每个的长度         if(i>1&&i%10==0)         {             printf("\t-----------------------------------\n");             printf("\t");             system("pause");             printf("\t-----------------------------------\n");         }     }     printf("----------------------------------------------------------------------\n");     system("pause"); }    int Delete_a_record(Person per[],int n)         //删除记录的程序 {     char s[20];     int i=0,j;                                              //进行定义     printf("\t请输入想删除记录中的商品名称:");              //请输入想删除记录中的商品名称     scanf("%s",s);     while(strcmp(per[i].name,s)!=0&&i<n)         i++;               //首先输入商品名称进行查询     if(i==n)     {         printf("\t超市系统暂无!\n");         return(n);     }     for(j=i;j<n-1;j++)                                      //使用循环进行查询，找到相应的记录     {         strcpy(per[j].num,per[j+1].num);                    //查询数量         strcpy(per[j].name,per[j+1].name);                  //查询商品名称         strcpy(per[j].age,per[j+1].age);                    //查询保质期         strcpy(per[j].adds,per[j+1].adds);                  //查询所在地址         strcpy(per[j].email,per[j+1].email);                //查询电子邮件         per[j].score=per[j+1].score;     }     printf("\t\t\t已经成功删除!\n");                        //提示删除成功     return(n-1); }  void Query_a_record(Person per[],int n) {      int m;     printf("\t\n请选择查询方式:\n");                           //请选择查询方式      printf("\t1------商品名称 \n");                              // 商品名称     printf("\t2------联系电话 \n");                              // 联系电话     printf("\t3------所在地址 \n");                              // 所在地址     printf("\t4------确认返回 \n");                              // 确认返回     printf("请选择:");                                          //输入选择值     scanf("%d",&m);     while(m!=1&&m!=2&&m!=3&&m!=4)                                //判断输入的是否正确，如果不正确则进行提示     {         printf("输入错误，请重新选择:");         scanf("%d",&m);     }      if(m==1)                                                     //当用用户输入指令1时     {         char s[20];         int i=0;         printf("\t请输入想查询的商品名称:");    //输入先要查询的名称，如果名称不对的话是查不到的         //scanf("\t%s",s);         scanf("%s",s);         while(strcmp(per[i].name,s)!=0&&i<n)             i++;              //当查询不到的时候，系统会提示你超市系统里面没有         if(i==n)         {             printf("\t超市系统暂无!\n");             return;         }                                                     //如果输入正确的时候 ，会显示出你所要查询的内容         printf("\t编号: %d\n",per[i].score);                     //显示编号         //printf("\t保质期s\n",per[i].age);                        //显示保质期         printf("\t保质期%s\n",per[i].age);                        //显示保质期         printf("\t电话号码: %s\n",per[i].num);                   //显示电话号码         printf("\t通讯地址: %s\n",per[i].adds);                  //显示通讯地址         printf("\t电子邮箱: %s\n",per[i].email);                 //显示电子邮箱     } ;      if(m==2)                                           //当用用户输入指令2时     {         char s[20];                            //输入先要查询的数量，如果名称不对的话是查不到的         int i=0;         printf("\t请输入想查询的数量:");         //scanf("\t%s",s);         scanf("%s",s);         while(strcmp(per[i].num,s)!=0&&i<n) i++;               //当查询不到的时候，系统会提示你超市系统里面没有         if(i==n)         {             printf("\t超市系统暂无\n");             return;          }         printf("\t商品编号: %d\n",per[i].score);                       //显示商品编号         printf("\t商品名称: %s\n",per[i].name);                        //显示商品名称         printf("\t商品保质期: %s\n",per[i].age);                       //显示商品保质期         printf("\t所在位置: %s\n",per[i].adds);                        //显示所在位置         printf("\t电子邮箱: %s\n",per[i].email);                       //显示电子邮箱     } ;      if(m==3)                             //当用用户输入指令3时     {         char s[20];                                    ////输入先要查询的名称，如果名称不对的话是查不到的         int i=0;         printf("\t请输入想查询的地址:");         //scanf("\t%s",s);         scanf("%s",s);         while(strcmp(per[i].adds,s)!=0&&i<n) i++;                  //当查询不到的时候，系统会提示你超市系统里面没有         if(i==n)         {             printf("\t超市系统暂无!\n");             return;         }         printf("\t商品编号: %d\n",per[i].score);                         //显示商品编号         printf("\t商品名称: %s\n",per[i].name);                          //显示商品名称         printf("\t商品保质期: %s\n",per[i].age);                         //显示商品保质期         printf("\t电话号码: %s\n",per[i].num);                           //显示电话号码         printf("\t电子邮箱: %s\n",per[i].email);                         //显示电子邮箱     } ; }   void Change(Person per[],int n)                     //修改的程序 {     char s[20];     int i=0;     printf("\t请输入想修改的记录中的商品名称:");      //首先输入修改的记录中的商品名称     scanf("%s",s);     while(strcmp(per[i].name,s)!=0&&i<n) i++;               //会在系统里面查找是否有这个记录，如果没有则提示超市系统暂无此记录     if(i==n)     {         printf("\t超市系统暂无!\n");         return;     }     printf("\t编号:");                  //修改的编号，把之前的改成现在的     scanf("\t%d",&per[i].score);     printf("\t名称:");                  //修改的名称，把之前的改成现在的     scanf("\t%s",per[i].name);     printf("\t保质期:");                //修改的保质期，把之前的改成现在的     scanf("\t%s",per[i].age);     printf("\t数量:");                  //修改的数量，把之前的改成现在的     scanf("\t%s",per[i].num);     printf("\t所在位置:");              //修改的所在位置，把之前的改成现在的     scanf("\t%s",per[i].adds);     printf("\t电子邮箱:");              //修改的电子邮箱，把之前的改成现在的     scanf("\t%s",per[i].email);     printf("\t修改成功！"); }   //void main()                 //主函数 int main()                 //主函数 {     int x=0;     for(;;)     {         switch(menu_select())                       //根据用户在主界面上输入的指令在进行操作，当输入1时则添加记录到超市系统         {             case 1:                 printf("\n\t添加记录到超市系统\n");                 x=Input(pe,x);                 break;              case 2:                 printf("\n\t\t\t    超市系统记录表\n");     //根据用户在主界面上输入的指令在进行操作，当输入2时则显示到超市系统的记录                 Display(pe,x);                 break;              case 3:                 printf("\n\t从超市系统中删除记录\n");      //根据用户在主界面上输入的指令在进行操作，当输入3时则删除记录到超市系统                 x=Delete_a_record(pe,x);                 printf("\t");                 system("pause");                 break;              case 4:                 printf("\n\t在超市系统中查找记录\n");       //根据用户在主界面上输入的指令在进行操作，当输入4时则查找记录在到超市系统                 Query_a_record(pe,x);                 printf("\t");                 system("pause");                 break;              case 5:                 printf("\n\t修改超市系统中的记录\n");      //根据用户在主界面上输入的指令在进行操作，当输入5时则修改记录到超市系统                 Change(pe,x);                 printf("\t");                 system("pause");                 break;              case 0:                 printf("\n\t\t谢谢使用，再见!\n");         //根据用户在主界面上输入的指令在进行操作，当输入0时，结束程序                 printf("\n\t\t");                 exit(0);         }     } }  供参考～

user: user-3
content: CSDN论坛新手指南[/quote][/quote] 代码整理一下，看的累