Poniżej znajduje się kod, który miał za zadanie przepisać znak po znaku zawartość pliku dane2.txt do nowo utworzonego pliku dane3.txt. Program działa, kompiluje się i przenosi zawartość jednak jest pewien problem. Nie do końca przenosi ją poprawnie, ponieważ zawsze przenosi ją dodając znak w kolejnej linii. Próbowałem dowiedzieć się dlaczego się może tak dziać oraz także dowiedzieć się jak działają funkcje fgetc() fputc() jednak mimo wszystkich prób nie jestem w stanie wymyślić dlaczego tak się dzieje.
Mój kod:
#include <stdio.h>
#include <stdlib.h>
#define MAX 200
int main()
{
FILE *plik,*plik1;
char znak;
plik=fopen("dane2.txt","r");
if(plik==NULL)
{
printf("Plik - dane2.txt (output Zadania 2), z ktorego dane maja zostac skopiowane nie istnieje!");
exit(1);
}
plik1=fopen("dane3.txt","w");
printf("Sukces! Dane zostaly skopiowane do pliku - dane3.txt");
while(znak!=EOF)
{
znak=fgetc(plik);
fputc(znak,plik1);
}
fclose(plik);
fclose(plik1);
return 0;
}
Tutaj treść pliku dane2.txt
I tak wygląda niepoprawnie skopiowany tekst z dodatkowym znakiem w kolejnej linii:
Z góry dziękuję za każdą pomoc!