удаление строки без временного файла в C - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь удалить данную строку, заменив ее следующей строкой, но это ничего не меняет

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);

1 Ответ

0 голосов
/ 29 декабря 2018

У вас неверные аргументы в fseek(fp, 0, j);.Третий аргумент должен быть одной из SEEK_xxx констант, поэтому он должен быть fseek(fp, j, SEEK_SET);.

...