Moim zadaniem jest wczytanie pliku jako argument wywołania, którego zawartość przenosimy do pliku o nazwie plik_mod_2 znak po znaku ignorując znak nowej linii. To pliku plik_mod_2 na początku umieszczamy informację o autorze w pierwszym wierszu. Wszystko to udało mi się zrobić, ale jest jeszcze jeden element zadania, w którym zliczmy wszystkie znaki w pliku źródłowym i pliku stworzonym i zapisujemy wyniki do ostatniego wiersza pliku stworzonego. Niestety to nie działa. Zlicza w pliku źródłowym, ale nie zlicza w pliku wynikowym. I nie wiem czemu to co napisałem nie działa. Poniżej umieszczam ów kod.
if (strcmp(argv[2],"2")==0)
{
char bufor[512];
FILE *plik1=fopen(argv[1],"r");
char tekst[]="AUTOR\n";
char *zmienna = basename(argv[1]);
char zmienna1[]="Nowy";
const char help[]="_mod_2";
strcat(zmienna,help);
FILE *plik=fopen(zmienna1,"wr");
int z=rename(zmienna1,zmienna);
char bufor2[512];
char bufor3[512];
fprintf(plik, "%s", tekst);
char znak;
int chars=0,chars1=0;
znak = getc( plik1 );
while (znak != EOF)
{ chars++;
if(znak != '\n')
putc(znak, plik);
znak = getc(plik1);
}
char znak2;
znak2 = getc( plik);
while (znak2 != EOF)
{
chars1++;
znak = getc(plik);
}
sprintf(bufor2,"\nZnaki w pliku zrodlowym: %d ",chars);
fputs(bufor2,plik);
sprintf(bufor3," Znaki w pliku wynikowym: %d ",chars1);
fputs(bufor3,plik);
printf("%d",chars);
printf("%d",chars1);
fclose(plik1);
fclose(plik);
}