50 likes | 164 Views
Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita. Gymnázium prof. Jana Patočky Jindřišská 36 110 00 Praha 1 www.gpjp.cz/projekty/soucasny-svet geu@gpjp.cz www.esfcr.cz
E N D
Současný světProjekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámciOperačního programu Praha adaptabilita Gymnázium prof. Jana Patočky Jindřišská 36 110 00 Praha 1 www.gpjp.cz/projekty/soucasny-svet geu@gpjp.cz www.esfcr.cz „Praha & EU: Investujeme do vaší budoucnosti“
Jazyk CPráce se soubory Vstup údajů ze souborů Výstup výsledků práce do souborů Vstupní/výstupní operace jsou vždy bufferované, tzn. při čtení ze souboru se do paměti načte celý blok najednou a jednotlivé údaje se z něj při běhu programu postupně vybírají -při zápisu do souboru se zapisuje do bufferu (paměťového bloku) a teprve když je plný, zapíše se na médium (disk). V programu je nutno soubory pro vstup a výstup definovat: datový typ FILE* - pointer na objekt typu file FILE (píše se vždy velkými písmeny):
Jazyk CPráce se soubory Pro více proměnných: (definice souborové proměnné pro čtení a pro zápis): FILE *fr , *fw ; obvykle se používá *fr pro soubor, který je pročtení a *fw pro soubor pro zápis Otevření souboru pro čtení: fr = fopen("ctimne.txt" , "r") ; /* fr...pointer na soubor */ Pokud se neuvede celá cesta k souboru, předpokládá se umístění souboru ve složce, ve které je program. Otevření souboru pro zápis: fw = fopen("soubor.txt" , "w") ; Toto je otevření v textovém režimu, pro binární by bylo "rb" resp. "wb".
Jazyk CPráce se soubory Základní operace s otevřeným textovým souborem: (předpokládáme proměnnou f typu FILE): c = getc(f) ; /* cteni jednoho znaku */ putc(c , f) ; /* zapis jednoho znaku */ formátovaný vstup a výstup: pocpol = fscanf(f, "format" , argumenty) ; /*podobne jako scanf-pocpol je pocet prectenych polozek */ fprintf(f , "format" , argumenty ) ; Uzavření otevřeného souboru: fclose(f) ; Uzavření souboru na konci práce s ním je nutné, zejména při zápisu - uložení obsahu bufferu na médium (disk).
Jazyk CPráce se soubory Další funkce pro čtení/zápis: fgets - řádkově orientovaný vstup definice: char *fgets(char *str, int max, FILE *fr) ; /* str - retezec, kam se uklada, max / max delka retezce, fr - soubor ; posledni znak v retezci je \0 */ fputs - řádkově orientovaný výstup definice: int fputs(char *s , FILE *fw) ; /* s - retezec, fw - soubor ; retezec neukoncuje ani nedava \n */