#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;
}
Del()函数中,为什么gets()没用(单独跑可以,放在一起就不行了)
- 写回答
- 好问题 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
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看