Как скопировать все строки из файла, кроме удаленной?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
FILE *fp1, *fp2;
char fname[50] = "fiile.csv", ch, toFind[50], str[200], saved[200];
int delLine=1, count=1;
fp1 = fopen(fname, "r");
fp2 = fopen("new.csv", "w");
char * line1 = NULL;
printf("Enter your id card number: ");
scanf("%s", toFind);
while(fgets(str, 200, fp1)){
line1 = strtok(str, "\n");
strcpy(saved, line1);
if(strstr(saved, toFind)){
printf("%s\n", saved);
exit(0);
}
}
return 0;
}
Что я уже пробовал:
В этом коде я пытаюсь удалить строку, которую я получу через номер идентификационной карты. Я смог извлечь эту строку, но не смог удалить ее. Я знаю, что необходим временный файл, и, скопировав весь текст, кроме удаленного, я могу это сделать. Но проблема в том, что я не могу скопировать все строки, кроме удаленной, как в этом примере
Пример
ch = getc(fp1);
//except the line to be deleted
if (temp != delete_line){
putc(ch, fp2);
}
Здесь используется getc (), но я использую fgets() только для того, чтобы найти конкретную строку через номер идентификационной карты. Я не знаю, возможно ли это через getc() или есть какой-то другой способ?