我正在尝试通过将下一行替换为下一行来删除给定的行,但它没有任何改变
int i=0,n,j,p;
char s[80];
FILE *fp;
scanf("%d",&n);
fp = fopen("test.txt","r+");
while(fgets(s,sizeof(s),fp)!=NULL){
i++;
if(i==n)
break;
j = ftell(fp);
}
while(fgets(s,60,fp)!=NULL){
p = ftell(fp);
fseek(fp,0,j);
fprintf(fp,"%s",s);
j = p;
fseek(fp,0,SEEK_CUR);
}
fclose(fp);
答案 0 :(得分:2)
您在fseek(fp, 0, j);
中使用了错误的参数。第三个参数必须是SEEK_xxx
常量之一,因此它应该是fseek(fp, j, SEEK_SET);
。