簡體   English   中英

在C中刪除沒有臨時文件的行

[英]deleting line without temporary file in C

我正在嘗試通過將下一行替換為給定的行來刪除給定的行,但它不會改變任何內容

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

您在fseek(fp, 0, j);有錯誤的論點fseek(fp, 0, j); 第三個參數必須是SEEK_xxx常數之一,因此它應該是fseek(fp, j, SEEK_SET);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM