C语言怎么将文本文件的某一行修改后保存到原来位置
5个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main()
{
char work[50]="";
char buffer1[50]="";
char buffer2[50]="";
int len=0;
int res;
FILE *fp =fopen("test","r+");
if(fp==NULL)
{
printf("打开文件失败");
return -1;
}
while(1)
{
if(!fgets(work,50,fp));
{
fclose(fp);
return -1;
}
len=strlen(work);
sscanf(work,"%s%s",buffer1,buffer2);
if(!strcmp("willam",work))
{
res=fseek(fp,-len,1);
if(res<0)
{
perror("fseek");
return -1;
}
strcpy(buffer1,"william");
strcat(buffer1," ");
strcat(buffer1,buffer2);
fprintf(fp,"%s",buffer1);
fclose(fp);
break;
}
}
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改前记录某行位置,修改后再替换原来位置处的数据就可以了 ,当然,这相当于重写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只能读出来,修改之后重写的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没试过,应该用文件的随机访问函数可以做到吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询