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)