StudyFiWiki
WikiWebová aplikace
StudyFi

AI studijní materiály pro každého studenta. Shrnutí, kartičky, testy, podcasty a myšlenkové mapy.

Studijní materiály

  • Wiki
  • Webová aplikace
  • Registrace zdarma
  • O StudyFi

Právní informace

  • Obchodní podmínky
  • GDPR
  • Kontakt
Stáhnout na
App Store
Stáhnout na
Google Play
© 2026 StudyFi s.r.o.Vytvořeno s AI pro studenty
Wiki💻 Informatika a počítačové vědyProgramování v jazyce CShrnutí

Shrnutí na Programování v jazyce C

Programování v jazyce C: Kompletní Průvodce pro Studenty

ShrnutíTest znalostíKartičkyPodcastMyšlenková mapa

Úvod

Tento materiál shrnuje základní standardní knihovny jazyka C a jejich rozhraní pro vstup a výstup (I/O). Je určený pro samostudium a zaměřuje se na praktické použití funkcí z <stdio.h>, <stdlib.h> a příbuzných hlaviček, nastavení lokalizace, zpracování signálů a variadické funkce. Cílem je rozdělit témata na malé dílčí části, doplnit je příklady a tabulkami pro rychlé porovnání.

Definice: Knihovna (library) v C je soubor funkcí a makro-definicí zpřístupněný přes hlavičkové soubory; I/O označuje operace pro čtení a zápis dat (standardně stdin, stdout, soubory).

Základní I/O: stdio.h

Proudové rozhraní

  • stdin, stdout, stderr — předdefinované proudy
  • Typy: FILE, size_t, fpos_t

Definice: FILE je abstrakce pro proud (soubor, konzole nebo jiné I/O zařízení), přes který voláme funkce jako fread/fwrite, fprintf atd.

Funkce pro znaky a řetězce

  • getchar(), putchar()
    • int getchar(void) čte jeden znak ze stdin a vrací EOF při konci souboru.
    • int putchar(int c) zapisuje znak do stdout; při chybě vrací EOF.
    • Ekvivalentní: getc(stdin), putc(c, stdout)

Příklad: filtr převádějící vše na malá písmena

#include <stdio.h>
#include <ctype.h>
int main(void) {
    int c;
    while ((c = getchar()) != EOF)
        putchar(tolower(c));
    return 0;
}
  • fgets(char *s, int size, FILE *stream)

    • Čte až do délky size-1 nebo do nového řádku; uloží '\n' pokud byl čten.
    • Vrací NULL při EOF nebo chybě.
    • Bezpečnější než historické gets().
  • puts(const char *s)

    • Zapíše řetězec do stdout a přidá nový řádek. Vrací EOF při chybě.

Formátované I/O

  • printf(const char *fmt, ...)

    • Formátovací specifikátory: %d, %o, %x, %u, %c, %s, %e, %f, %g
    • Příklady formátů: %5.2lf, %10s, %-10s, %.10s, %#g, %06x
  • scanf(const char *fmt, ...)

    • Vrací počet úspěšně načtených položek.
    • Bílé znaky v formátu ignorují odpovídající bílé znaky ve vstupu.
    • Podporuje * pro potlačení přiřazení a specifikátory šířky např. %2d.

Příklad použití scanf:

int i; float x; char name[50];
scanf("%2d %f %*d %2s", &i, &x, name);

Vstup: 56789 0123 45a72 Výsledek: i = 56, x = 789.0, name = "45"

I/O do/z paměti a souboru

  • fprintf/fscanf pro soubory: fprintf(FILE *f, const char *fmt, ...)
  • sprintf/sscanf pro řetězce v paměti: sprintf(char *s, const char *fmt, ...)

Poznámky:

  • scanf vyžaduje ukazatele jako argumenty.
  • sprintf je potenciálně nebezpečné (přetečení bufferu) — používejte bezpečné alternativy, pokud jsou dostupné.

Seznam funkcí stdio (vybrané)

OperaceFunkce
Otevření / zavřenífopen, freopen, fclose, tmpfile
Čtení / zápis blokůfread, fwrite
Čtení řádku / znakufgets, fgetc, getc, getchar
Zápis řetězce / znakufputs, fputc, putchar, puts
Pozice v souborufseek, ftell, fgetpos, fsetpos, rewind
Stav souborufeof, ferror, clearerr, perror

Chybové kódy: errno.h

  • errno je globální (pseudo)proměnná nastavovaná při chybách některých volání.
  • Standardní hodnoty: EDOM, EILSEQ, ERANGE

Definice: errno indikuje typ chyby provedené standardní funkcí; na začátku programu je nulová.

Použití: volání perror() vypíše popis poslední chyby podle errno.

💡 Věděli jste?Did you know that errno is nastaven pouze pokud dojde k chybě; některé funkce mohou errno ponechat beze změny při úspěchu?

Matematické a limitní hlavičky

  • math.h: trigonometrické, exponentační, zaokrouhlovací funkce; makra INFINITY, NAN, isinf(), isnan().
  • float.h: charakteristiky floating-point typů jako FLT_MAX, DBL_EPSILON
  • limits.h: rozsahy celočíselných typů jako INT_MAX, LONG_MIN
💡 Věděli jste?Fun fact: Některé implementace C rozšiřují hlavičky o další konstanty a funkce; vždy zkontrolujte dokumentaci konkrétní platformy.

Variadické funkce: stdarg.h

  • Makra: va_list, va_start(ap, lastfix), va_arg(ap, type), va_end(ap)
  • Princip: funkce přijme proměnný počet argumentů (např. printf) a iteruje přes ně přes va_list.

Příklad: součet čísel ukončených nulou

#in
Zaregistruj se pro celé shrnutí
KartičkyTest znalostíShrnutíPodcastMyšlenková mapa
Začni zdarma

Už máš účet? Přihlásit se

Knihovny a I/O v C

Klíčová slova: Základy jazyka C, Programování v C - techniky, Paměť a ukazatele v C, Knihovny a I/O v C, Ladění a testování, Nástroje, ladění a testování v C, C a C++, Programování v C++, Sestavování a binární formáty, Optimalizace a výkon v C, Systémy správy verzí, Zpracování textu a Unicode v C

Klíčové pojmy: stdin, stdout, stderr jsou základní proudy v <stdio.h>, getchar()/putchar() čtou a zapisují jednotlivé znaky, EOF značí konec souboru, fgets() čte řádky bezpečněji než gets(); puts() zapíše řetězec s novým řádkem, printf()/scanf() poskytují formátované I/O; kontrolujte návratové hodnoty, fprintf/fscanf a sprintf/sscanf pro soubory a paměť, errno a perror() pro hlášení chyb; errno je nastavováno při chybách, stdarg.h: va_start, va_arg, va_end pro funkce s proměnným počtem argumentů, signal.h: signal() a raise() pro zpracování signálů; používejte jen signal-safe kódy, setjmp/longjmp umožňují non-local jumps, ale mají omezení u non-volatile proměnných, locale.h mění chování funkcí závislých na jazyku/regionu, Kontrolujte návratové hodnoty I/O funkcí a vyhýbejte se nebezpečným rutinám (gets, sprintf)

## Úvod Tento materiál shrnuje základní standardní knihovny jazyka C a jejich rozhraní pro vstup a výstup (I/O). Je určený pro samostudium a zaměřuje se na praktické použití funkcí z <stdio.h>, <stdlib.h> a příbuzných hlaviček, nastavení lokalizace, zpracování signálů a variadické funkce. Cílem je rozdělit témata na malé dílčí části, doplnit je příklady a tabulkami pro rychlé porovnání. > Definice: **Knihovna (library)** v C je soubor funkcí a makro-definicí zpřístupněný přes hlavičkové soubory; **I/O** označuje operace pro čtení a zápis dat (standardně stdin, stdout, soubory). ## Základní I/O: stdio.h ### Proudové rozhraní - stdin, stdout, stderr — předdefinované proudy - Typy: **FILE**, **size_t**, **fpos_t** > Definice: **FILE** je abstrakce pro proud (soubor, konzole nebo jiné I/O zařízení), přes který voláme funkce jako fread/fwrite, fprintf atd. ### Funkce pro znaky a řetězce - getchar(), putchar() - int getchar(void) čte jeden znak ze stdin a vrací EOF při konci souboru. - int putchar(int c) zapisuje znak do stdout; při chybě vrací EOF. - Ekvivalentní: getc(stdin), putc(c, stdout) Příklad: filtr převádějící vše na malá písmena ```c #include <stdio.h> #include <ctype.h> int main(void) { int c; while ((c = getchar()) != EOF) putchar(tolower(c)); return 0; } ``` - fgets(char *s, int size, FILE *stream) - Čte až do délky size-1 nebo do nového řádku; uloží '\n' pokud byl čten. - Vrací NULL při EOF nebo chybě. - Bezpečnější než historické gets(). - puts(const char *s) - Zapíše řetězec do stdout a přidá nový řádek. Vrací EOF při chybě. ### Formátované I/O - printf(const char *fmt, ...) - Formátovací specifikátory: %d, %o, %x, %u, %c, %s, %e, %f, %g - Příklady formátů: %5.2lf, %10s, %-10s, %.10s, %#g, %06x - scanf(const char *fmt, ...) - Vrací počet úspěšně načtených položek. - Bílé znaky v formátu ignorují odpovídající bílé znaky ve vstupu. - Podporuje * pro potlačení přiřazení a specifikátory šířky např. %2d. Příklad použití scanf: ```c int i; float x; char name[50]; scanf("%2d %f %*d %2s", &i, &x, name); ``` Vstup: 56789 0123 45a72 Výsledek: i = 56, x = 789.0, name = "45" ### I/O do/z paměti a souboru - fprintf/fscanf pro soubory: fprintf(FILE *f, const char *fmt, ...) - sprintf/sscanf pro řetězce v paměti: sprintf(char *s, const char *fmt, ...) Poznámky: - scanf vyžaduje ukazatele jako argumenty. - sprintf je potenciálně nebezpečné (přetečení bufferu) — používejte bezpečné alternativy, pokud jsou dostupné. ### Seznam funkcí stdio (vybrané) | Operace | Funkce | |---|---| | Otevření / zavření | fopen, freopen, fclose, tmpfile | | Čtení / zápis bloků | fread, fwrite | | Čtení řádku / znaku | fgets, fgetc, getc, getchar | | Zápis řetězce / znaku | fputs, fputc, putchar, puts | | Pozice v souboru | fseek, ftell, fgetpos, fsetpos, rewind | | Stav souboru | feof, ferror, clearerr, perror | ## Chybové kódy: errno.h - errno je globální (pseudo)proměnná nastavovaná při chybách některých volání. - Standardní hodnoty: EDOM, EILSEQ, ERANGE > Definice: **errno** indikuje typ chyby provedené standardní funkcí; na začátku programu je nulová. Použití: volání perror() vypíše popis poslední chyby podle errno. Did you know that errno is nastaven pouze pokud dojde k chybě; některé funkce mohou errno ponechat beze změny při úspěchu? ## Matematické a limitní hlavičky - math.h: trigonometrické, exponentační, zaokrouhlovací funkce; makra INFINITY, NAN, isinf(), isnan(). - float.h: charakteristiky floating-point typů jako FLT_MAX, DBL_EPSILON - limits.h: rozsahy celočíselných typů jako INT_MAX, LONG_MIN Fun fact: Některé implementace C rozšiřují hlavičky o další konstanty a funkce; vždy zkontrolujte dokumentaci konkrétní platformy. ## Variadické funkce: stdarg.h - Makra: va_list, va_start(ap, lastfix), va_arg(ap, type), va_end(ap) - Princip: funkce přijme proměnný počet argumentů (např. printf) a iteruje přes ně přes va_list. Příklad: součet čísel ukončených nulou ```c #in

Další materiály

ShrnutíTest znalostíKartičkyPodcastMyšlenková mapa
← Zpět na téma