#include #include #define NS 51 void prepisi_karakterski(char *ulaz, char *izlaz); void prepisi_linijski(char *ulaz, char *izlaz); int main(){ /* prosledjujemo konstantnu nisku, ne moramo da alocirami staticki niske */ prepisi_karakterski("ulaz.txt", "izlaz1.txt"); prepisi_linijski("ulaz.txt", "izlaz2.txt"); return 0; } void prepisi_karakterski(char *ulaz, char *izlaz){ FILE *ud; /* pokazivac na ulaznu datoteku */ FILE *id; /* pokazivac na izlaznu datoteku */ char c; /* promenljiva za svaki novi ucitani karakter */ ud = fopen(ulaz, "r"); /* prvu datoteku otvaramo za citanje */ id = fopen(izlaz, "w"); /* drugu otvaramo za pisanje, ako ne postoji ona se automaski kreira */ /* ispitivanje da li je otvaranje datoteka korektno proslo, ako nije vraca se specijalni pokazivac NULL */ if(ud==NULL || id==NULL){ printf("Greska pri otvaranju datoteka. \n"); exit(EXIT_FAILURE); /* potrebno je ukljuciti stdlib.h za ovo, i za EOF isto */ } /* EOF je specijalni karakter koji oznacava kraj datoteke */ while((c = fgetc(ud))!=EOF){ /* pisanje jednog karaktera u datoteku */ fputc(c, id); } fclose(id); /* zatvaranje oba fajla, OBAVEZNO! */ fclose(ud); } void prepisi_linijski(char *ulaz, char *izlaz){ FILE *ud; FILE *id; char linija[NS]; /* niska u koju ucitavamo svaku novu liniju */ ud = fopen(ulaz, "r"); id = fopen(izlaz, "w"); if(ud==NULL || id==NULL){ printf("Greska pri otvaranju datoteka. \n"); exit(EXIT_FAILURE); } /* fgets prihvata 3 argumenta: niska u koju upisujemo sadrzaj linije, maksimalna duzina za upis i pokazivac na datoteku */ while(fgets(linija, NS, ud)!=NULL){ fputs(linija, id); } fclose(id); fclose(ud); }