c语言用fscanf 和fprintf来复制并修改数据出现问题。

callmelb 2018-06-21 05:02:40


做的是一个对文本某一行内容进行修改,思路是将原文本中的数据复制到另一个文本,不复制要修改的那一行,其次再对新的文本进行输入新内容,储存。将原文件删除,把新文件命名为原文件的名字。
本人是给菜鸟,实在不会,希望各路好手能够出手相助。
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
callmelb 2018-06-21
  • 打赏
  • 举报
回复
加上process.h也不行
callmelb 2018-06-21
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
struct Data
{
int num;
char name[20];
int vote;
}worker[40];


void xiugai()
{
FILE *fin,*ftp;
int i=0,j;
printf("请输入要修改的人员的序号");
scanf("%d",&j);
fin=fopen("1.data","r");
ftp=fopen("2.data","w");
if(fin==NULL || ftp==NULL){
printf("打开失败...\n");
exit(0);
}
while(!feof(fin))
{
if(i!=j)
fscanf(fin,"%d %s %d",&worker[i].num,worker[i].name,&worker[i].vote),
fprintf(ftp,"%d %s %d",worker[i].num,worker[i].name,worker[i].vote);
i++;
i++;
}
fclose(fin);
fclose(ftp);
remove("1.data");
rename("2.data","1.data");
FILE *fin2;
fin2=fopen("1.data","a+");
printf("请输入修改的信息 ");
fprintf(fin2,"%d %s %d",&worker[j].num,worker[j].name,&worker[j].vote);
fclose(fin2);
printf("修改完成");
}




这是代码,而且发现运行时并没有过滤那个特定的行,最后输入的值也是数字
zyx6680599 2018-06-21
  • 打赏
  • 举报
回复
加上process.h再试一次

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧