stdio.h
stdio.h je kratica od "standard input/output header". stdio.h je datoteka zaglavlja standardne C biblioteke koja sadrži konstante i deklaracije funkcija odnosno naloga koji se koriste za ulaz i izlaz podataka. C++ zbog kompatibilnosti također uključuje stdio.h te ekvivalentnu datoteku zaglavlja cstdio u kojoj se stdio.h poziva nalogom std namespace.
Funkcije deklarirane u stdio.h su iznimno popularne, otkad su dio C standardne biblioteke i rade na svim platformama koje podržavaju C. No, može se dogoditi da će aplikacije na tim platformama umjesto biblioteke stdio.h koristiti svoje rutine za [I/O] operacije (ulaz i izlaz).
Uporaba
Sve funkcije u C-u su deklarirane u datotekama zaglavlja ili bibliotekama. Programeri u svojim programima za uporabu tih funkcija trebaju samo u izvorni kod programa uključiti datoteke zaglavlja kao stdio.h.
#include <stdio.h>
int main(void)
{
int ch;
while ((ch = getchar()) != EOF)
putchar(ch);
putchar('\n');
return 0;
}
Ovaj program učitava znakove sa standardnog ulaza (tipkovnice) i ispisuje ih na standardnom izlazu (ekranu), bajt po bajt (znak po znak, dodajući novi redak na kraju ulaza podatka.
Funkcije biblioteke
Funkcije biblioteke stdio.h možemo podijeliti na funckije za manipulaciju datotekama i funkcije za manipulaciju ulazom/izlazom.
Naziv | Opis |
---|---|
Funkcije za manipulaciju datotekama | |
fclose |
Zatvara datoteku s parametrom FILE * |
fopen, freopen |
Otvara datoteku za upis ili ispis podataka |
remove |
Briše datoteku |
rename |
Mijenja naziv datoteke |
rewind |
isko kao i ifseek |
tmpfile |
Stvara privremenu datoteku koja se briše nakon uporabe funkcije fclose() |
Funkcije za manipulaciju ulazom i izlazom | |
clearerr |
Briše end-of-file i indikator greške |
feof |
Provjerava end-of-file indikator |
ferror |
Provjerava indikator greške (error) |
fflush |
Upisuje izlaz u datoteku (bufer) |
fgetpos |
stores the file position indicator of the stream associated by its first argument (a FILE *) to its second argument (a fpos_t *) |
fgetc |
vraća jedan znak iz datoteke |
fgets |
vraća string, niz znakova iz datoteke(završetak stringa je nova linija ili kraj datoteke) |
fputc |
upisuje znak u datoteku |
fputs |
upisuje string u datoteku |
ftell |
vraća poziciju u datoteci za funkciju fseek |
fseek |
pretraživanje datoteke |
fsetpos |
postavlja poziciju u datoteci, FILE * pohranjenu kao drugi argument funkcije ( fpos_t *) |
fread |
čita podatke iz datoteke |
fwrite |
upisuje podatke u datoteku |
getc |
čita znak iz datoteke |
getchar |
istko kao getc(stdin) |
gets |
čita znakove sa standardnog ulaza (stdin) dok ne naiđe na kraj linije i sprema ih u argument |
printf, vprintf |
ispis podataka an standardni izlaz |
fprintf, vfprintf |
upis podataka u datoteku |
sprintf, snprintf, vsprintf, vsnprintf |
ispis znakovnog polja, niza (array)(C string) |
perror |
ispisuje kod greške |
putc |
vraća znak |
putchar, fputchar |
isto kao i putc(stdout) |
scanf, vscanf |
učitavanje podataka sa standardnog ulaza |
fscanf, vfscanf |
učitavanje podataka iz datoteke |
sscanf, vsscanf |
učitavanje znakovnog polja |
setbuf, setvbuf |
postavljanje moda buffera |
tmpnam |
izrada privremene datoteke |
ungetc |
vraća znak |
puts |
ispis znaka na standardnom izlazu |
Varijable biblioteke
U biblioteci stdio.h nalaze se i ove varijable:
Naziv | Opis |
---|---|
stdin |
pokazivač na datoteku (FILE) koji pokazuje na standardni ulaz, najčešće tipkovnicu |
stdout |
pokazivač na datoteku (FILE) koji pokazuje na standadni izlaz, najčešće ekran računala. |
stderr |
pokazivač na datoteku (FILE) koji pokazuje na ekran računala. |
Konstante biblioteke
Konstante definirane u biblioteci ili datoteci zaglavlja stdio.h su:
Naziv | Opis |
---|---|
EOF |
negativna cjelobrojna vrijednost tipa int koja označava kraj datoteke
|
BUFSIZ |
int vrijednost koja označava veličinu buffera funkcije setbuf()
|
FILENAME_MAX |
veličina char polja za spremanje naziva bilo koje datoteke koja se otvara
|
FOPEN_MAX |
broj istovremeno otvorenih datoteka, najmanje 8 |
_IOFBF |
kratica od "input/output fully buffered"; integer koji se šalje funkciji setvbuf() (blok buffer)
|
_IOLBF |
kratica od "input/output line buffered"; integer koji se šalje funkciji setvbuf() (line buffer)
|
_IONBF |
kratica od "input/output line buffered"; integer koji se šalje funkciji setvbuf() (unbuffered)
|
L_tmpnam |
veličina char polja dovoljna za stvaranje privremene datoteke funkcijom tmpnam()
|
NULL |
null pokazivač |
SEEK_CUR |
integer za funkciju fseek() za relativno pozicioniranje s obzirom na sadašnju poziciju
|
SEEK_END |
integer za funkciju fseek() za relativno pozicioniranje s obzirom na kraj datoteke
|
SEEK_SET |
integer za funkciju fseek() za relativno pozicioniranje s obzirom na početak datoteke
|
TMP_MAX |
maksimalan broj jedinstvenih naziva datoteka generiranih tmpnam() funkcijom, najmanje 25
|