1 / 18

Uvod u programiranje I

Uvod u programiranje I. jesen/zima 2008. Ulaz/izlaz sa datotekama. Terminologija: datoteka = fajl Problem: jednokratni podaci koje program dobija sa tastature ili prikazuje na monitoru Rešenje: trajno čuvanje podataka u datotekama Datoteke se nalaze na disku, cd-romu, flešu, traci,.

vanna
Download Presentation

Uvod u programiranje I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uvod u programiranje I jesen/zima 2008

  2. Ulaz/izlaz sa datotekama • Terminologija: datoteka = fajl • Problem: jednokratni podaci koje program dobija sa tastature ili prikazuje na monitoru • Rešenje: trajno čuvanje podataka u datotekama • Datoteke se nalaze na disku, cd-romu, flešu, traci, ... Uvod u programiranje I

  3. Ulaz/izlaz sa datotekama • Prednosti rada sa datotekama: • Ulazni podaci se mogu u datotekama nezavisno upisati • Olakšan rad sa velikim brojem podataka • Ulazni podaci u datotekama se mogu koristiti više puta od strane više programa • Izlazni podaci zapisani u datotekama se mogu prenositi, štampati, obrađivati drugim programima, ... Uvod u programiranje I

  4. Ulaz/izlaz sa datotekama Magistrala Operativnamemorija d1 d2 … CPU Disk Monitor Tastatura d4 d3 Uvod u programiranje I

  5. Ulaz/izlaz sa datotekama • Ulaz iz datoteke = čitanje datoteke • Izlaz u datoteku = pisanje datoteke • Svaka datoteka ima jedinstveno ime u sistemu datoteka na disku • mojprog.c • seminarski.doc • \\server\prodaja\cene.txt • c:\slike\mojeluce.gif Uvod u programiranje I

  6. Ulaz/izlaz sa datotekama • Vrste datoteka prema načinu upisa podataka: • Tekstualne datoteke (“čitljive”) • Binarne datoteke (“karakuke”) Uvod u programiranje I

  7. Ulaz/izlaz sa datotekama • Tekstualne datoteke • Niz znakova (može biti vrlo veliki) • Kada program upisuje numeričke podatke u izlaznu datoteku, automatski se vrši konverzija njihove memorijske binarne reprezentacije u niz znakova • Kada program čita numeričke podatke iz ulazne datoteke, automatski se vrši konverzija odgovarajućeg niza znakova u binarni oblik Uvod u programiranje I

  8. Ulaz/izlaz sa datotekama • Binarne datoteke • Niz bajtova • Kada program upisuje ili čita numeričke podatke, ne vrši se nikakva konverzija njihovog binarnog oblika u niz znakova ili obrnuto • Brži rad jer nema konverzije, ali datoteke nečitljive standardnim programima Uvod u programiranje I

  9. Ulaz/izlaz sa datotekama • Tipične operacije sa datotekom • Otvaranje datoteke (uspostavljanje veze programa i željene datoteke) • Čitanje/pisanje datoteke • Ispitivanje stanja datoteke (kraj datoteke, veličina datoteke, ... ) • Zatvaranje datoteke (raskidanje veze programa i željene datoteke) Uvod u programiranje I

  10. Ulaz/izlaz sa datotekama • Da bi se koristila neka datoteka, ona se mora prvo otvoriti • Otvaranje datoteke je spora operacija, zato otvaranje treba izvršiti samo jednom • Broj istovremeno otvorenih datoteka u programu je ograničen, zato neku datoteku treba zatvoriti čim se završi rad sa njom Uvod u programiranje I

  11. Ulaz/izlaz sa datotekama • Datoteka se može otvoriti • samo za čitanje • samo za pisanje • za dopisivanje na kraj datoteke • za čitanje i pisanje • U prva tri slučaja, čitanje/pisanje se obavlja sekvencijalno • U četvrtom slučaju, čitanje/pisanje se obavlja programski u proizvoljnim mestima Uvod u programiranje I

  12. Ulaz/izlaz sa datotekama • Čitanje/pisanje(pristup) datoteke • Sekvencijalni pristup datoteci: nakon svakog čitanja ili pisanja, “prozor” datoteke se pomera na sledeću poziciju za čitanje ili pisanje • Proizvoljni pristup datoteci: “prozor” datoteke se pomera na proizvoljnu poziciju za čitanje ili pisanje Uvod u programiranje I

  13. Ulaz/izlaz sa datotekama • Otvaranje tekstualne datoteke • r (read), samo za čitanje. Datoteka mora postojati • w (write), samo za pisanje. Ako datoteka postoji, briše se njen sadržaj • a (append), za dopisivanje na kraj datoteke. Ako datoteka ne postoji, formira se nova • r+, za čitanje i pisanje postojeće datoteke • w+, za čitanje i pisanje nove datoteka • a+, za čitanje i dopisivanje na kraj datoteke Uvod u programiranje I

  14. Ulaz/izlaz sa datotekama • Rad sa tekstualnom datotekom • strukturaFILEsadrži relevantne informacije o datoteci • fopen • fclose • feof • fscanf • fprintf Uspostavlja režim rada sa datotekom Imaju dodatni, prvi argument koji je pokazivač na datoteku koja se čita ili piše Uvod u programiranje I

  15. Ulaz/izlaz sa datotekama /* čita datoteku sa cenama i racuna njihov prosek */ #include <stdio.h> int main(void) { FILE*d; /* pokazivac datoteke */ char imedat[256]; /* ime datoteke */ int n=0; /* ukupan broj cena u datoteci */ double cena, suma=0.0; /* jedna cena i ukupna suma cena */ printf(”Unesite ime datoteke: ”); gets(imedat); d = fopen(imedat, ”r”); Uvod u programiranje I

  16. Ulaz/izlaz sa datotekama if (d == NULL) { printf(”Greska kod otvaranja %s.\n”, imedat); return 1; } while (feof(d) == 0) { // while (!feof(d)) fscanf(d, ”%lf”, &cena); suma = suma + cena; n++; } printf(”Prosek procitanih %d cena je %f.\n”, n, suma/n); fclose(d); return 0; } Uvod u programiranje I

  17. Ulaz/izlaz sa datotekama • Rad sa binarnom datotekom • strukturaFILE • rb, wb, ab, rb+, wb+, ab+ • fopen • fclose • feof • fread(bafer, veličina, broj, pd) • fwrite(bafer, veličina, broj, pd) Uvod u programiranje I

  18. Ulaz/izlaz sa datotekama • Datoteka za čitanje i pisanje • fseek • ftell Uvod u programiranje I

More Related