File: Stare vježbe/vjezbe12/74b__file_copy.c
/* 74b__file_copy.c Naredbe fgetc, fputc. Ucitavanje parametara sa komandne linije. ----- Program kopira sadrzaj jedne datoteke u drugu. Imena datoteka ocitavaju se iz komandne linije. Parametri komandne linije: --- primjer: ako program pokrenemo sa file_copy src.txt dest.txt onda je --> broj_parametara=3 parametar[0]="file_copy" parametar[1]="src.txt" parametar[2]="dest.txt" */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main (int broj_parametara, char *parametar[]) { FILE *source, *destination; char src_name[80], dest_name[80], ch; if (broj_parametara != 3) { printf ("Koristenje: %s polazna_datoteka ciljna_datoteka\n", parametar[0]); exit(1); } strcpy (src_name, parametar[1]); strcpy (dest_name, parametar[2]); if ((source=fopen(src_name, "rt")) == NULL) { printf ("Ne mogu otvoriti datoteku %s za citanje.\n", src_name ); exit(1); } if ((destination=fopen(dest_name, "rt")) != NULL) { printf ("Datoteka %s postoji. Prebrisati (y/n)? ", dest_name ); if (toupper(getchar()) != 'Y') exit(1); } if ((destination=fopen(dest_name, "wt")) == NULL) { printf ("Ne mogu otvoriti datoteku %s za pisanje.\n", dest_name ); exit(1); } while ((ch=fgetc (source)) != EOF) fputc (ch, destination); /* Ekvivalentni zapis ove petlje: */ /* while (!feof(source)) { ch = fgetc (source); fputc (ch, destination); } */ fclose (source); fclose (destination); return 0; }
|