Uvod u računarstvo 2+2

Слични документи
Microsoft PowerPoint - Datoteke [Compatibility Mode]

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

Uvod u računarstvo 2+2

Programski jezik C

Programski jezici i strukture podataka

Datoteke predavač: Nadežda Jakšić

PHP kod

07_PJISP_II_Predavanja

Uvod u računarstvo 2+2

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

PowerPoint Presentation

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

MergedFile

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

PowerPoint Presentation

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

070-ALIP2-udzbenik.indb

Funkcije predavač: Nadežda Jakšić

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Računarski praktikum I - Vježbe 01 - Uvod

Programiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Grananje u programu predavač: Nadežda Jakšić

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Uvod u računarstvo 2+2

Strukture predavač: Nadežda Jakšić

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Uvod u takmičarsko programiranje

Microsoft PowerPoint - JavaP9_2019

Slide 1

Programski jezik C

Programiranje za UNIX Okruženje unix procesa

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

Računarski praktikum I - Vježbe 09 - this, static

Uvod u PHP

Sveucilište u Zagrebu

Programiranje 2 7. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 7. predavanje p. 1/7

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language

Prikaz znakova u računalu

PowerPoint Presentation

Programiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PowerPoint Presentation

PASCAL UVOD 2 II razred gimnazije

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Programiranje 2 1. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 1. predavanje p. 1/7

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Programiranje 2 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević February 23, 2008

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

MJEŠOVITA SREDNJA TEHNIČKA ŠKOLA TRAVNIK PROGRAMIRANJE I PROGRAMSKI JEZICI PROGRAMSKI JEZIK C -SKRIPTA ZA INTERNU UPOTREBU-

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Funkcije predavač: Nadežda Jakšić

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Programiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava

03 SUBP

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

studirko.com predstavlja: Večernja škola C# za FPZ ( ) v 4.0 Za studirko.com napisao: Slaven Špigl

COMARC/A Format

PowerPoint Presentation

Napredno web programiranje

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Računarski praktikum I - Vježbe 11 - Funktori

Državna matura iz informatike

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr

Државно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица

PowerPoint Presentation

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 12. predavanje p. 1

Microsoft Word - CCERT-PUBDOC doc

P11.3 Analiza zivotnog veka, Graf smetnji

Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

P1.2 Projektovanje asemblera

Upute - JOPPD kreiranje obrasca

Objektno orjentirano programiranje

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević January 23, 2008

Microsoft Word - 02 Elementi programskog jezika Pascal

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

Računarski praktikum I - Vježbe 06 - Standard Template Library (2)

P3.2 Paralelno programiranje 2

kriteriji ocjenjivanja - informatika 8

HxD CERT.hr-PUBDOC

Logičke izjave i logičke funkcije

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Microsoft Word - 11 Pokazivaci

SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Vinko Cerovečki OSTVARIVANJE JEDNOSTAVNA MEMORIJSKOGA DATOTEČNOGA SUSTAVA ZA

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Microsoft Word - WP_kolokvij_2_rjesenja.doc

Транскрипт:

Datoteke nastavak

Funkcija fgets Funkcija koja učitava podatke iz datoteke, liniju po liniju, je char *fgets(char *str, int n, FILE *fp); gdje su str pokazivač na dio memorije (string) u koji će ulazna linija biti spremljena; n veličina memorije na koju pokazuje prvi argument; fp pokazivač na datoteku iz koje se učitava. Funkcija će pročitati liniju od n-1 znakova (ili manje: sve do oznake kraja datoteke ili oznake kraja reda - '\n') i na kraj će automatski dodati '\0'.

Funkcije fgets (2) Ukoliko je ulazna linija dulja, ostatak će biti pročitan pri sljedećem pozivu funkcije fgets. Funkcija vraća str ako je sve u redu ili NULL u slučaju pojavljivanja pogreške ili ako se došlo do kraja datoteke. Funkcija char *gets(char *str); čita sa standardnog ulaza. Kraj učitavanja oznaka za novi red. Umjesto gets(str) može se koristiti fgets(str, n, stdin).

Funkcija fputs Funkcija za ispis podataka u datoteku, liniju po liniju, je int fputs(const char *str, FILE *fp); Funkcija vraća nenegativnu vrijednost u slučaju uspjeha ili EOF u slučaju greške. fputs ispisuje znakovni niz na koji pokazuje str u datoteku na koju pokazuje fp. Zadnji nul znak neće biti ispisan. Funkcija int puts(const char *str); ispisuje znakovni niz na koji pokazuje str na standardni izlaz. Na kraj niza funkcija dodaje znak

Formatirani unos/ispis za prijelaz u novi red što ju razlikuje od fputs(str, stdout). Za formatirani upis u datoteku i ispis (čitanje) iz datoteke koristimo funkcije int fprintf(file *fp, const char *format, ); int fscanf(file *fp, const char *format, ); koje su identične s funkcijama printf i scanf, s tim da je prvi argument pokazivač na datoteku. fprintf vraća broj upisanih znakova ili negativan broj u slučaju greške. fscanf vraća broj učitanih objekata ili EOF ako je došlo do greške ili kraja datoteke.

Formatirani unos/ispis (2) printf( ) je ekvivalentno s fprintf(stdout, ), a scanf( ) je ekvivalentno s fscanf(stdin, ). Primjer: int kolicina = 100; double cijena = 4.50; fprintf(fp, "%d:%f\n", kolicina, cijena);... int kolicina; double cijena; fscanf(fp, "%d:%lf\n", &kolicina, &cijena);

Funkcije sprintf i sscanf Za formatirani upis u znakovni niz (string) i ispis iz znakovnog niza koristimo funkcije int sprintf(char *s, const char *format, ); int sscanf(char *s, const char *format, ); koje su identične s funkcijama printf i scanf, s tim da je prvi argument pokazivač na string. sprintf vraća broj upisanih znakova bez nulznaka ili negativan broj u slučaju greške. sscanf vraća broj učitanih objekata ili EOF ako je došlo do greške ili kraja datoteke.

Primjer: #include <stdio.h> int main( ){ char *podaci = "2 2.50", ispis[80]; int kolicina; double cijena; sscanf(podaci, "%d %lf", &kolicina, &cijena); printf("%f\n", cijena); sprintf(ispis, "kolicina = %d\n" \ "cijena = %f\n", kolicina, cijena); printf("%s\n", ispis); } return 0;

Funkcije pogreške Budući da funkcije vraćaju EOF i u slučaju kada je došlo do greške i u slučaju kada se naiđe na kraj datoteke, postoje funkcije int ferror(file *fp); int feof(file *fp); koje razlikuju ta dva slučaja. ferror vraća broj različit od nule (istina) ako je došlo do greške, a nulu (laž) ako nije. feof vraća broj različit od nule (istina) ako smo došli do kraja datoteke, a nulu (laž) u suprotnom.

Binarno čitanje i pisanje Primjer: do{ c = getc(fp); putchar(c); } while(!feof(fp)); Za binarno čitanje iz datoteke i pisanje u datoteku koristimo funkcije size_t fread(void *ptr, size_t size, size_t n, FILE *fp); size_t fwrite(const void *ptr, size_t size, size_t n, FILE *fp);

Binarno čitanje i pisanje (2) Funkcije ne rade konverziju iz binarnog u ASCII format i obratno, tj. direktno se čita binarni zapis iz datoteke, odnosno upisuje binarni zapis u datoteku. Argumenti funkcija su: ptr pokazivač na varijablu u koju fread upisuje, odnosno iz koje fwrite čita size veličina pojedinog objekta n broj objekata koje treba učitati/ispisati fp pokazivač na datoteku iz koje se čita ili u koju se piše.

Binarno čitanje i pisanje (3) Primjer: int polje[10]; fread(polje, sizeof(int), 10, fp);... int polje[10] = { }; fwrite(polje, sizeof(int), 10, fp); Prednost binarnog izlaza/ulaza je brzina i veličina zapisa. Nedostatak je ovisnost o arhitekturi računala i prevodiocu.

Funkcije za pozicioniranje Funkcija int fseek(file *fp, long offset, int origin); gdje su fp pokazivač na datoteku offset pomak u bajtovima origin: SEEK_SET od početka datoteke SEEK_CUR od trenutne pozicije SEEK_END od kraja datoteke Funkcija vraća 0 u slučaju uspjeha, a broj različit od nule (-1) u slučaju pogreške.

Funkcija fseek Primjer: fseek(fp, 0, SEEK_SET); /* Pozicioniranje na */ rewind(fp); /* početak datoteke. */ fseek(fp, 0, SEEK_END); /* Pozicioniranje na kraj datoteke. */ fseek(fp, 2L, SEEK_CUR); fseek(fp, -2, SEEK_END);

Trenutna pozicija u datoteci Funkcija int ftell(file *fp); Funkcija vraća poziciju u datoteci ili -1 u slučaju pogreške. Primjer: fp = fopen ("dat1", "r"); printf("%d \n", ftell(fp)); getc(fp); printf("%d \n", ftell(fp));

Primjer: int main() { FILE *fp; int p, c, i = 0; if ((fp = fopen ("dat1","r")) == NULL){ } do { i--; fseek(fp, i, SEEK_END); p = ftell(fp); c = getc(fp); putchar(c); } while (p!= 0); fclose(fp); return 0; }

Primjer: Sadržaj datoteke test.txt: Podaci za 2 studenta/ice: 20 40 10 30 Kako iščitati numerički podatak (2)? FILE *fp; if ((fp = fopen("test.txt", "r")) == NULL) fscanf(fp, "%s %s %d %s \n", s1, s2, &n, s3); fscanf(fp, "%*s %*s %d %*s", &n);