Scanf függvény


int scanf( const char *format, argumentumlista );
visszatérési érték: sikeresen beolvasott változók száma
akkor tér vissza, ha:
-formátumsztring által meghatározott számú adatot beolvasott
-hibát észlel, azaz az adatbevitel nem felel meg a formátumsztring előírásainak

formátum: [%][*][mezőszélesség][méretmódosító előtag][konverziós karakter]

* -> a beolvasott adatot eldobja (nem próbálja meg valamely változóban tárolni)

konverziós karakter bevitt adat
d decimális egész
i egész szám, akár oktális(0) vagy hexadecimális formában(0x vagy 0X)
o oktális egész 0 előtag nélkül
u előjel nélküli decimális egész
x hexadecimális egész előtaggal vagy anélkül
c karakter
s sztring
f, e, g valós érték, amely opcionálisan tartalmazhat előjelet és exponenst is
p pointer
n idáig beolvasott karakterek számát adja vissza az argumentumban

Szűrés: scanf("%[abc]", str) - az inputból csak az a,b,c, karaktereket olvassa be str-be
[^abc] - mindent, kivéve az a,b,c karaktereket
[a-z] - kisbetűket
[a-z0-9] - kisbetűket és számokat

Egyéb i/o függvények
int getchar( void ) - 1 db karakter beolvasása
int putchar( int ch ) - 1 db karakter kiírása
char *gets( char *str ) - sztring beolvasása újsor karakterig,
int puts( char *str ) - sztring kiírása

gets-et soha ne használd! Helyette:
char *fgets( char *str, int num, FILE *stream ) - ugyanúgy működik, de max num-1 karaktert olvas be
Használat stdio esetén:
char s[256];
fgets(s, 256, stdio);

Példa: olvassuk be egy számot, a sor további részét ugorjuk át, majd a következő
sorból egy másikat! (sor.c)