Microsoft PowerPoint - Datoteke [Compatibility Mode]

Слични документи
Uvod u računarstvo 2+2

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

Programski jezik C

Datoteke predavač: Nadežda Jakšić

Programski jezici i strukture podataka

07_PJISP_II_Predavanja

Uvod u računarstvo 2+2

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

PHP kod

Microsoft PowerPoint - Bitovi [Compatibility Mode]

PowerPoint Presentation

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

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

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

Uvod u računarstvo 2+2

Programiranje za UNIX Okruženje unix procesa

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

Funkcije predavač: Nadežda Jakšić

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

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

Programski jezik C

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

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

PowerPoint Presentation

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

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

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

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

MergedFile

Uvod u računarstvo 2+2

070-ALIP2-udzbenik.indb

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

Sveucilište u Zagrebu

Microsoft PowerPoint - JavaP9_2019

Funkcije predavač: Nadežda Jakšić

P11.3 Analiza zivotnog veka, Graf smetnji

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

PowerPoint Presentation

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

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

Strukture 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

CLI

Tutoring System for Distance Learning of Java Programming Language

PowerPoint Presentation

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

P3.2 Paralelno programiranje 2

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

Osnovni programiranja I

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

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

Tutoring System for Distance Learning of Java Programming Language

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

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

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

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

Računarske mreže i mrežne tehnologije 10. termin 1. TRANSPORTNI SLOJ Transportni sloj nije još samo jedan od mnogih slojeva jer je njegova uloga sama

Verifikacija softvera 7.čas Marjana Šolajić, Ana Vulović Matematički fakultet, Univerzitet u Beogradu 11. decembar 2018 Sadržaj 1 KLEE Upotreba

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

Slide 1

obavezno je koristiti spell-checker

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

P11.2 Izbor instrukcija, IBURG

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 - 12-Funkcije_1.ppt [Compatibility Mode]

P1.3 Projektovanje makroasemblera

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

1 Hello Qt Pravljenje veza Korišćenje priručne dokumentacije Početak rada U ovom poglavlju naučićete kako da kombinujete osnovni C++ sa funkcionalnošć

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

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

PowerPoint Presentation

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

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

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Primenjeno programiranje - vezbe GUI i baze podataka

PowerPoint Presentation

P8.1 Generatori skenera i parsera

Logicko projektovanje racunarskih sistema I

Napredno web programiranje

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Uvod u PHP

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

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

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

03 SUBP

Uvod u takmičarsko programiranje

P1.2 Projektovanje asemblera

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

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

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

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

PROMENLJIVE, TIPOVI PROMENLJIVIH

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

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

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

Tutoring System for Distance Learning of Java Programming Language

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

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

Дистрибуирани софтверски системи Технички факултет "Михајло Пупин" Зрењанин, Универзитет у Новом Саду Практикум за лабораторијске вежбе #07 [нерецензи

ZIS

Транскрипт:

Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке <stdio.h> Најједностaвније функције int getchar(void) int putchar(int) Конвенција преусмерења, пример prog <indat >outdat 2>greska Форматирани излаз / улаз int printf(char *format, arg1, arg2,... ) int sprintf(char *string, char *format, arg1, arg2,...) int scanf(char *format, arg1, arg2,... ) int sscanf(char *string, char *format, arg1, arg2,... )

Датотеке - приступ датотекама FILE *fopen(const char *ime, const char *nacin); nacin: r, w, a FILE *fp; fp = fopen(ime, nacin); текстуална датотека крај реда -> маркер краја реда (<lf>-10-linux, <cr><lf>-windows, <cr>-13- Mac) бинарна датотека: nacin rb, wb, ab не уписује се маркер краја реда, осим експлицитно при читању чита се дословни садржај fread(), fwrite() nacin r+, rb+, r+b - отварање датотеке за ажурирање тј. читање и упис w+, wb+, w+b креирање датотеке за ажурирање a+, ab+, a+b отварање или креирање датотеке за ажурирање упис на крај

Датотеке читање и упис int fgetc(file *fp) int fputc(int c, FILE *fp) int getc(file *fp) (као fgetc, може и као макро) int putc(int c, FILE *fp) (као fputc, може и као макро) char *fgets(char *s, int maxduzina, FILE *fp), int fputs(const char *s, FILE *fp) При стартовању програма ОС отвара три стандардне датотеке: stdin, stdout, stderr #define getchar() getc(stdin) #define putchar(c) putc((c), stdout) int fscanf(file *fp, char *format, arg1, arg2,... ) int fprintf(file *fp, char *format, arg1, arg2,... )

Датотеке - пример Функција која копира садржај датотеке са показивачем ulazp у датотеку са показивачем izlazp има следећу дефиницију: /*filecopy: kopira datoteku ulazp u datoteku izlazp */ void filecopy(file *ulazp, FILE *izlazp) { int c; while ((c=getc(ulazp))!= EOF) putc(c, izlazp);

Датотеке - пример Програм који позива претходну функцију: #include <stdio.h> void filecopy(file *, FILE *); /*kopiranje: kopira datoteku a.c u datoteku b.c */ int main() { FILE *ulazp, *izlazp; if ((ulazp=fopen( a.c, r ))==NULL) { printf( ne moze da se otvori datoteka a.c \n ); return 1; else {if ((izlazp=fopen( b.c, w ))==NULL) { printf( ne moze da se otvori datoteka b.c \n ); return 1; else {filecopy(ulazp, izlazp); fclose(izlazp); izlazp=fopen( b.c, r ); filecopy(izlazp, stdout); fclose(izlazp); fclose(ulazp);

Датотеке алтернативно преусмеравање funkcija freopen() <stdio.h> FILE *freopen(const char *filename, const char *mode, FILE *stream) Пример #include <stdio.h> int main() { int i; FILE *ulazp, *izlazp; ulazp=freopen( ulaz.txt, r, stdin); izlazp=freopen( izlaz.txt, w, stdout); scanf( %d, &i); printf( %d \n, i); return 0;

Aргументи командне линије Функција main до сада је дефинисана без аргумената main(), а командна линија којом се позива извршавање програма је садржала само један аргумент назив извршног програма. У општем случају, функција main може да има аргументе, а њихове вредности су у тесној вези са бројем и вредностима аргумената командне линије којом се позива извршавање одговарајућег програма main се дефинише са два аргумента : argc (ARGument Count) број аргумената у командној линији (број стрингова у позиву извршавања програма), и argv (ARGument Vector) вредности аргумената командне линије сами стрингови int main(int argc, char *argv[]))

Aргументи командне линије int main(int argc, char *argv[ ])) argc добија вредност једнаку броју аргумената (рачунајући и само име датотеке извршног програма то је argv[0]), argv[1] је једнак првом опционом аргументу (који се наводи иза имена извршне датотеке), argv[2] је једнак другом опционом аргументу, итд. int main() argc је 1, argv[0] је име програма, argv[1] је NULL

Aргументи командне линије - пример #include <stdio.h> /*kopiranje: kopira ulaznu datoteku u izlaznu datoteku */ main(int argc, char *argv[ ]) { FILE *ulazp, *izlazp; void filecopy(file *, FILE *); if ((ulazp=fopen(argv[1], r ))==NULL) { printf( ne moze da se otvori datoteka %s \n, argv[1]); return 1; else {if ((izlazp=fopen(argv[2], w ))==NULL) { printf( ne moze da se otvori datoteka %s \n, argv[2]); return 1; else { filecopy(ulazp, izlazp); fclose(izlazp); izlazp=fopen(argv[2], r ); filecopy(izlazp, stdout); fclose(izlazp); fclose(ulazp); datkopi a.c b.c

Функције директног приступа датотекама: fseek int fseek(file *stream, long offset, int origin) Вредност originможе бити SEEK_SET (почетак датотеке), SEEK_CUR (текућа позиција у датотеци) или SEEK_END (крај датотеке). Ове вредности су константе дефинисане у <stdio.h>. Функција fseek враћа вредност 0 ако је позиционирање успешно, а вредност различиту од 0 у случају грешке

Функције директног приступа датотекама: fseek Пример: #include <stdio.h> int main() { FILE *fp; fp=fopen( izlaz.txt, w ); fputs( This is an apple., fp); fseek(fp, 9, SEEK_SET); fputs( sam, fp); fclose(fp); return 0; This is an apple. This is a sample.

Функције директног приступа датотекама: ftell long int ftell(file *stream) <stdio.h> Враћа текућу вредност индикатора позиције у датотеци којој је придружен показивач stream. -1L у случају грешке

Функције директног приступа датотекама: ftell Пример #include <stdio.h> int main() { FILE *fp; long size; fp=fopen( ulaz.txt, r ); if(fp==null){ printf( greska pri otvaranju datoteke ); return 1; else { fseek(fp, 0, SEEK_END); size = ftell(fp); fclose(fp); printf( Velicina datoteke ulaz.txt: %ld bajtova \n, size); return 0;