Chenzhjn17 2021-04-14 08:45 采纳率: 60%
浏览 26
已采纳

Del()函数中,为什么gets()没用(单独跑可以,放在一起就不行了)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 2//电影信息的行数(用scanf进行修改)
void file_write(char *day1,char *name1,char *time1,char *place1)//管理员增加电影信息
{
    int i;
    FILE *fpwrite;
    fpwrite=fopen("D:\\电影信息2.txt","a+");
    if(fpwrite==NULL)
    {
        printf("open failure!");
        exit(1);
    }
    fprintf(fpwrite,"日期\t影名\t时间\t放映厅\n");
    for(i=0;i<N;i++)
    {
        printf("please input day name time place:\n");
        scanf("%s%s%s%s",day1,name1,time1,place1);
        fprintf(fpwrite,"%s\t%s\t%s\t%s\n",day1,name1,time1,place1);//(输入时用空格补齐)
    }
    fclose(fpwrite);
}
void file_read(char *day2,char *name2,char *time2,char *place2)//读取电影信息
{
    int i;
    FILE *fpread;
    fpread=fopen("D:\\电影信息2.txt","r");
    if(fpread==NULL)
            
    {
        printf("open failure!");
        exit(1);
    }
    
    for(i=0;i<(N+1);i++)
    {
        fscanf(fpread,"%s\t%s\t%s\t%s",day2,name2,time2,place2);
        printf("%s\t%s\t%s\t%s\n",day2,name2,time2,place2);
    }
    
}
void Del()
{
    FILE *fin,*ftp;
    char a[80]; 
    char str[80];
    fin=fopen("D:\\电影信息2.txt","r");//读取原文件
    ftp=fopen("D:\\tmp.txt","w");//建立新文件 
    if(fin==NULL||ftp==NULL)
    {
        printf("open failure!");
        exit(1);
    }
    printf("请输入要删除的信息:\n");
    fflush(fin);
    gets(str);
    while(fgets(a,80,fin))//从原文件读取一行
    {
        a[strlen(a)-1]='\0';
        if(strcmp(str,a)!=0)
        {
            fputs(a,ftp);
            fprintf(ftp,"\n");
        }
    }
    fclose(fin);
    fclose(ftp);
    remove("D:\\电影信息2.txt");
    rename("D:\\tmp.txt","D:\\电影信息2.txt");
}
int main()
{
    char day[80],name[80],time[80],place[80];
    file_write(day,name,time,place);
    file_read(day,name,time,place);
    Del();
    return 0;
}

  • 写回答

1条回答 默认 最新

  • cpp_learners 2021-04-14 09:13
    关注

     fflush(fin);改成fflush(stdin);试试。

    或者改成

    char c;

    while ((c = getchar()) != '\n');

     

    参考:https://blog.csdn.net/cpp_learner/article/details/104178769?spm=1001.2014.3001.5502

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?