#include #include /* Ponasanje funkcije ftell. Pisanje, citanje do kraja, pokusaj citanja preko kraja. */ int main(void) { char *f_name = "fpos.dat"; FILE *fp; int c, i; /* Otvaramo datoteku za pisanje. */ if ((fp = fopen(f_name, "w")) == NULL) { fprintf(stderr, "Ne mogu pisati u: %s!\n", f_name); exit(1); } /* Kreiramo datoteku od 4 znaka: abcd. */ for (c = 'a'; c <= 'd'; ++c) if (fputc(c, fp) == EOF) { fprintf(stderr, "Greska u pisanju.\n"); exit(2); } fclose(fp); /* Otvaramo datoteku za citanje. */ if ((fp = fopen(f_name, "r")) == NULL) { fprintf(stderr, "Ne mogu citati iz: %s!\n", f_name); exit(3); } /* Sekvencijalno citamo tu datoteku. */ for (i = 0; i < 6; ++i) { printf(" Pozicija: %ld,", ftell(fp)); /* printf(" znak = %2d\n", fgetc(fp)); */ if ((c = fgetc(fp)) >= 0) printf(" znak = %2c\n", c); /* Znak. */ else printf(" znak = %2d\n", c); /* Broj. */ } fclose(fp); return 0; }