Как скопировать все строки из файла, кроме удаленной?
#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() или есть какой-то другой способ?