Programování v jazyce C: Kompletní Průvodce pro Studenty
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).
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.
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)
puts(const char *s)
printf(const char *fmt, ...)
scanf(const char *fmt, ...)
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"
Poznámky:
| 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 |
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.
Příklad: součet čísel ukončených nulou
#in
Už máš účet? Přihlásit se
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)