A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze 2009.01.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
Programování v C jazyku - SEMINÁŘ
Vstup a výstup doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Standardní knihovní funkce: matematika a datum a čas
Základní pojmy v jazyce C
Pole, ukazatele a odkazy
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Algoritmy I. Cvičení č. 10.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
Operátory (1. část) 3 A1PRG - Programování – Seminář
Struktury, qsort, mergesort BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Datové typy 6 A1PRG - Programování – Seminář
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Příklady v jazyku C – část 6
Současný svět Projekt č. CZ /3. 1
Jiří Znoj - zno Tvorba konkordace Algoritmy II 3. projekt, 5. zadání Jiří Znoj - zno
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Cvičení.
Vstupy a výstupy znaků a) Terminálový vstup a výstup ( getchar(), putchar() ) Přečtěte znak pomocí systémové funkce getchar() a vypište ho pomocí putchar().
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
Příklady v jazyku C – část 2
C – cyklus while Mgr. Lenka Švancarová.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
C – switch Mgr. Lenka Švancarová. switch syntaxe switch (výraz) { case hodnota_1: příkaz(y)_ve_větvi_1; case hodnota_2: příkaz(y)_ve_větvi_2; … default:
KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch. Osnova cvičení Třída String a její metody –Řetězce a operace s nimi.
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Práce s řetězci Řetězec je libovolný text nebo libovolná skupina znaků. Řetězec se také označuje jako string. Činnosti prováděné s řetězci: Počítání znaků.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Příklady v jazyku C – část 2
C – procedury Mgr. Lenka Švancarová.
C – cyklus do-while Mgr. Lenka Švancarová.
Příklady v jazyku C – část 7. Napište rekurzivní podprogram, který vypočítá faktoriál a použijte ho při vyvolání v hlavním programu: #include int fakt(int.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Algoritmizace a programování Cykly - For. FOR Předem známe počet opakování Předem známe počet opakování Syntaxe: Syntaxe: for proměnná in range(rozpětí):
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Počítače a programování 2
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
C# konzole – Vstup a výstup
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Kurz algoritmizace a programování v jazyce C
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Řetězce (24) Funkce strchr: deklarována v: string.h
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze

Agenda  Standardní vstup a výstup  Formátovaný vstup a výstup  Národní prostředí  Dynamická alokace paměti

Standardní vstup a výstup  Základní knihovní funkce:  gets()  puts()  getchar()  putchar()

Standardní vstup a výstup  Funkce puts()  char * puts ( char * str );  Vypíše řetězec na standardní výstup  Výpis textu proměnné až do nalezení ‘\0‘.  Automaticky doplňuje znak ‘\n‘.

Standardní vstup a výstup  Funkce puts() – příklad: #include int main () { char string [] = "Hello world!"; puts (string); }

Standardní vstup a výstup  Funkce gets()  char * gets ( char * str );  Načte řetězec ze standardního vstupu a uloží do řetězcové proměnné.  Načítá celý řádek textu, vynechává znak ‘\n‘.  Automaticky doplňuje ‘\0‘ na konec řetězce.

Standardní vstup a výstup  Funkce gets() – příklad: #include int main() { char string [256]; printf ("Zadejte svou adresu: "); gets (string); printf (“Vaše adresa je: %s\n",string); return 0; }

Standardní vstup a výstup  Funkce putchar()  char putchar ( char ch );  Vypíše jednoho znaku na standardní výstup  Návratová hodnota: znak, který byl načten.

Standardní vstup a výstup  Funkce putchar() – příklad: #include int main () { char c; for (c = 'A' ; c <= 'Z' ; c++) { putchar(c); } return 0; }

Standardní vstup a výstup  Funkce getchar()  int getchar ();  Načtení jednoho znaku ze standardního vstupu.  Návratová hodnota: znak, který byl zapsán.

Standardní vstup a výstup  Funkce getchar() – příklad: #include int main () { char c; puts ("Vepište text. Zápis ukončíte tečkou:"); do { c=getchar(); putchar (c); } while (c != '.'); return 0; }

Formátovaný vstup a výstup  Výpis na terminál:  Obecný zápis:printf(řetězec, promenna)  Vstup z terminálu:  Obecný zápis:scanf(řetězec, &promenna)

Formátovaný vstup a výstup  Řetězec obsahuje řídící sekvence, za které jsou dosazovány proměnné.  Řídící sekvence má následující obecnou syntaxi: %[příznaky][min_šířka][přesnost][modifikátor typu]typ

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ  Nepovinný parametr  Ovlivňuje zejména způsob zarovnání hodnoty při nastavení minimální šířky, zobrazení znaménka, …  Příznaky mají jednu z hodnot dle následující tabulky.

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ PříznakVýznam #Výpis hodnoty více explicitně (např. vynucení zobrazení 0x u hexadecimální hodnoty) 0Zleva zarovnat nulami -Zprava zarovnat mezerami mezeraZleva zarovnat mezerami +Před číslem vždy zobrazit znaménko

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ  Nepovinný parametr.  Celočíselná hodnota.  Minimální šířka vypisovaného parametru.  Pokud je vypisovaná hodnota kratší, je doplněna zleva mezerami nebo dle příznaků.  Možno použít znak * - počet míst se načte z argumentu, který předchází proměnné k výpisu

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ  Nepovinný parametr.  Použití u racionálních čísel.  Počet cifer za desetinnou tečkou.  Uvádí se zápis včetně desetinné tečky.  Možno použít znak * - počet míst se načte z argumentu, který předchází proměnné k výpisu

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ  Povinný parametr.  Určuje formát vypisovaných dat, který odpovídá danému datovému typu.  Jednotlivé typy shrnuje následující tabulka.

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ TypPopis c znak d znaménkové celé číslo v desítkovém formátu i znaménkové celé číslo v desítkovém formátu (C++) e reálné číslo ve vědeckém formátu (např. 2.8e31) E reálné číslo ve vědeckém formátu (např. 2.8E31) f reálné číslo s desetinnou tečkou g reálné číslo s desetinnou tečkou, je-li exponent menší než  4, v opačném případě stejně jako u e G reálné číslo s desetinnou tečkou, je-li exponent menší než  4, v opačném případě stejně jako u E

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ TypPopis o znaménkové celé číslo v oktalovém formátu s řetězec u nezáporné celé číslo x znaménkové celé číslo v hexadecimálním formátu. Znaky A-F malými písmeny X znaménkové celé číslo v hexadecimálním formátu. Znaky A-F velkými písmeny p ukazatel (adresa v paměti) n nezobrazí žádnou hodnotu % výpis znaku %

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ  Nepovinný parametr.  Použití zejména u datových typů s větším/menším rozsahem než u základního datového typu.  Jednotlivé modifikátory typu shrnuje následující tabulka.

Formátovaný vstup a výstup %[příznaky][min_šířka][přesnost][modifikátor typu]typ TypPopis h Datový typ short int l Modifikátor pro datový typ long int nebo long double L Modifikátor pro datový typ long int nebo long double ll Modifikátor pro datový typ long long int (dle normy C99) LL Modifikátor pro datový typ long long int (dle normy C99)

Formátovaný vstup a výstup  Příklady:  printf ("Znaky: %c %c \n", 'a', 65); Znaky: a A  printf ("Desítková čísla: %d %ld\n", 1977, ); Desítková čísla:  printf ("Úvodní mezery: %10d \n", 1977); Úvodní mezery: 1977  printf ("Úvodní nuly: %010d \n", 1977); Úvodní nuly:

Formátovaný vstup a výstup  Příklady:  printf ("Různé číselné soustavy: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100); Různé číselné soustavy: x  printf ("Reálná čísla: %4.2f %+.0e %E \n", , , ); Reálná čísla : e E+000

Formátovaný vstup a výstup  Příklady:  printf ("Šířka: %*d \n", 5, 10); Width trick: 10  printf ("%s \n", "Řetězec"); Řetězec

Národní prostředí  Při návrhu jazyka C se nepočítalo s použitím jiného kódování, než je kódování pro znaky anglické abecedy.  Pro znaky národních abeced doplněna knihovna locale.h  Knihovna locale.h však nemá podporu ve všech překladačích!  Funguje však např. v MS Visual Studio nebo v Dev C++

Národní prostředí  Nastavení pomocí funkce setlocale() char * setlocale ( int category, const char * locale );  Návratová hodnota: kategorie lokalizace

Národní prostředí  Nastavení pomocí funkce setlocale() char * setlocale ( int category, const char * locale );  1. parametr: kategorie lokalizace JménoPopis LC_ALLPlná lokalizace (vše následující) LC_COLLATEZnaková sada LC_CTYPEChování maker v ctype.h LC_MONETARYSymbol a formátování měny LC_NUMERICNastavení oddělovače u desetinných čísel (tečka/čárka) LC_TIMEDatum a čas (konkrétně funkce strftime()

Národní prostředí  Nastavení pomocí funkce setlocale() char * setlocale ( int category, const char * locale );  2. parametr: řetězec obsahující jméno lokalizace.  C – výchozí dle jazyka C  Prázdný řetězec – výchozí dle prostředí

Národní prostředí  Příklad: #include int main() { printf("Příliš žluťoučký kůň úpěl ďábelské ódy"); getch(); return 0; }

Národní prostředí  Příklad: #include int main() { setlocale(LC_ALL, ""); printf("Příliš žluťoučký kůň úpěl ďábelské ódy"); getch(); return 0; }

Dynamická alokace paměti  Funkce z knihovny stdlib.h  Základní funkce:  malloc()  calloc()  realloc()  free()

Dynamická alokace paměti  Funkce malloc()  Alokace paměti. Neprobíhá inicializace!  Funkce z knihovny stdlib.h  Syntaxe: void * malloc ( size_t size );

Dynamická alokace paměti  Funkce malloc()  Parametry: size…velikost alokované paměti v bytech  Návratová hodnota: void *…ukazatel na začátek alokované oblasti  Příklad: int *x; x = (int *) malloc(sizeof(int));

Dynamická alokace paměti  Funkce calloc()  Alokace paměti. Probíhá inicializace na 0!  Funkce z knihovny stdlib.h  Syntaxe: void * calloc ( size_t num, size_t size );

Dynamická alokace paměti  Funkce calloc()  Parametry: num…počet prvků size…velikost jednoho prvku v bytech  Návratová hodnota: void *…ukazatel na začátek alokované oblasti  Příklad: int *x; x = (int *) calloc(5, sizeof(int));

Dynamická alokace paměti  Funkce realloc()  Realokace paměti – změna velikosti alokované oblasti.  Funkce z knihovny stdlib.h  Syntaxe: void * realloc ( void * ptr, size_t size );

Dynamická alokace paměti  Funkce realloc()  Parametry: ptr…ukazatel na původní oblast size…nová velikost v bytech  Návratová hodnota: void *…ukazatel na začátek alokované oblasti  Příklad: int *x; x = (int *) malloc(5*sizeof(int)); x = (int *) realloc(x, 10*sizeof(int));

Dynamická alokace paměti  Funkce free()  Dealokace paměti – uvolnění paměti  Funkce z knihovny stdlib.h  Syntaxe: void free ( void * ptr );

A1PRG-s 12. Vstup a výstup Děkuji za pozornost Ing. Michal Heczko 218/U3 Prezentace k dispozici na