Funkcja ma za zadanie usunąć jeden wiersz z pliku tekstowego. Zrobiłem to w taki sposób że po kolei sprawdzam czy dana linijka ma zostać usunięta, jeżeli nie to zapisuję ją do nowego pliku. Jeżeli znajdzie żądaną funkcję to po prostu jej nie zapisuje w nowym pliku. Następnie usuwam stary plik i zmieniam nazwę nowego na stary. Problemem jest to że na koniec każdej linii dopisuje mi 0. Tj.
plik stary:
- 1,but,12
- 2,kaptur,7
- 3,skarpeta,8
nowy plik po usunięciu rzeczy nr 2
- 1,but,12,0
- 3,skarpeta,8,0
printf("podaj numer ID towaru ktory chcesz usunac z listy ");
scanf("%d",&usunt);
bt=fopen("tow.txt","r");
zast=fopen("zast.txt","a");
for(i=0;i<ile;i++)
{
fscanf(bt,"%d,%s,%d",&id,nazwatow,&liczbaszt);
if(id!=usunt)
{
fprintf(zast,"%d,%s,%d\n",id,nazwatow,liczbaszt);
}
}
fclose (bt);
fclose (zast);
remove("tow.txt");
rename("zast.txt","tow.txt");
printf("Pomyslnie usunieto\n\n");